Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Бази даних є формування у студентів системи фундаментальних теоретичних і практичних знань щодо- архі

Работа добавлена на сайт samzan.net:


ВСТУП

Метою навчальної дисципліни "Бази даних" є формування у студентів системи фундаментальних теоретичних і практичних знань щодо:

  1.  архітектури та існуючих моделей баз даних (БД);
  2.  методів проектування та основ роботи сучасних баз даних.

Завданнями дисципліни є вивчення основних принципів функціонування сучасних баз даних та систем управління базами даних (СУБД), ознайомлення з архітектурою та моделями БД, принципами проектування та роботи реляційних баз даних, освоєння сучасного програмного забезпечення для роботи з БД, впровадження та супроводження інформаційних технологій на підприємствах із застосуванням електронних баз даних.

Предметом вивчення дисципліни "Бази даних" є методологія проектування та використання сучасних баз даних та СУБД; принципи проектування реляційних баз даних та використання сучасного програмного забезпечення для роботи з БД.

Завданням лабораторних робіт є закріплення теоретичного матеріалу дисципліни «Бази даних» і отримання практичних навичок по створенню і використанню баз даних.

З цією метою по курсу банки і бази даних були виконані наступні практичні  та лабораторні роботи роботи:

Практична робота № 1 -2

Практична робота №2 -2

Практична робота № 3 -2

Практична робота № 4 -2

Практична робота № 5 -2

Лабораторна №1 -2

Лабораторна №2 -2


ПРАКТИЧНА РОБОТА № 1

Тема: Реляційна алгебра. Запити

Мета:  Ознайомлення з основними операціями реляційної алгебри,  придбання практичних навичок їх використання.

План

  1.  Для заданої бази даних написати запити, використовуючи операції реляційної алгебри:
  2.  Проаналізувати БД;
  3.  Заповнити таблиці даними (5-7 рядків);
  4.  Проаналізувати  текст запиту, визначити операції реляційної алгебри, які треба використати для написання запиту;
  5.  Описати кожний крок виконання запиту (специфікація операції, результат виконання);
  6.  Записати запит в один рядок;

2. Скласти звіт, що повинен складатися з таких розділів:

  1.  Заповнені таблиці;
  2.  Для кожного запиту представити:
  3.  Текст запиту;
  4.  Покроковий опис з результатами виконання;
  5.  Запит, який записаний  в один рядок.
  6.  Відповіді на контрольні питання.

Контрольні питання

1. Призначення і роль реляційної алгебри.

2. Перерахуйте операції реляційної алгебри;

3. Що є результатом виконання будь-якої операції реляційної алгебри?


ВАРІАНТИ ЗАВДАНЬ

Варіант 1

Книга(КодКниги, Назва, КодАвтора, рік видання)

Автор(КодАвтора, Прізвище Ім’я)

Читач(№Абонемента, Прізвище, Ім’я,  По-батькові)

Користування(№З/п, КодКниги, №абонементу, дата_повернення,  строк_ повернення)

Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :

1. Перерахувати усіх авторів

2.Відшукати читачів  по батькові «Іванович»

3.Відшукати прізвища читачів, за якими числиться книга «Війна і мир» Л. Толстого

4. Відшукати читачів(прізвище, ім'я, по батькові, телефон, адреса), які не узяли жодної книги

5.Отримати список номерів читачів, які в строк не здали книги

6. Отримати інформацію про читачів, за якими числяться книги, видані після 2005года

7.Отримати список книг, які жодного разу не брали читачі

8. Скласти список прізвищ(читачі і автори).

Варіант 2

Картка(КодКартки, КодВласника, КодТипу, термін_дії, сума)

Власник(КодВласник, Прізвище, Ім’я , По-батькові)

Тип(КодТипу, Тип)

Операції(№ з/п, дата, операція, сума, КодКартки)

  1.  Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :
    1.  Отримати список типів карток
    2.  Скласти список власників, термін дії карток яких збіг. (прізвище, номер картки, тип)
    3.  Отримати список власників з ім'ям «Борис»
    4.  Скласти список власників, що мають на рахунку суму нижче 5.000бел.руб.
    5.  Вивести номери карток власника з особистим номером =123456
    6.  Вивести номери карток типу «Visa» з нульовою сумою на рахунку
    7.  Отримати інформацію про картки, з якими не робилися ніякі операції
    8.  Отримати список карток, з якими виконувалися тільки операції «зарахування»

Варіант 3

Підрозділ (КодПідрозділу, Назва)

Співробітник(Табельний№, Прізвище, Імя, По-батькові, КодПідрозділу, вік)

Посади(КодПосади, Посада)

Зарплатня(№ з/п, Табельний№, зарплатня, надбавка, дата)

Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :

  1.  Скласти список підрозділів співробітників, в яких працюють співробітники з прізвищем «Іванів»
  2.  Скласти список посад
  3.  Вивести прізвищу співробітників підрозділу «САПР ПО»
  4.  Визначити яких посад немає в підрозділі «АСУ»
  5.  Скласти список співробітників підрозділу «САПР ПО» тих, що мають надбавки
  6.  Отримати табельні  номери співробітників у віці від 18 до 25 років
  7.  Отримати зведення про підрозділи, в якому усі співробітники мають надбавки
  8.  Скласти список співробітників підрозділу «АСУ» з вказівкою розміру заробітної плати.

Варіант 4

Факультет(КодФакультету, Назва, Декан)

Студент(КодСтудента, Прізвище, Імя, По-батькові, Код Групи)

Група(КодГрупи, КодФакультету, НазваГрупи, КодСтарости)

Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :

  1.  Скласти список старост факультету ФИТР
  2.  Скласти список студентів заданої групи з вказівкою прізвища старости
  3.  Отримати інформацію: чи є у деканів однофамільці
  4.  Відшукати номери груп, в яких вчаться студенти з прізвищем Петров
  5.  Скласти список студентів для старости Ковальчук
  6.  Вивести номери груп на факультеті декана Сидорова
  7.  Вивести назву факультетів, на яких є старости з прізвищем  Степанова
  8.  Вивести прізвища студентів, яких нема в жодної групі.

Варіант 5

Машина(№машини, марка, вантажопідйомність, ремонт)

Водій(№водія, ПІБ, №машини, стаж)

Поїздка(№водія, дата, тип_поїздки, кілометраж)

Примітка

  1.  Атрибут «Ремонт»  може мати  значення {так, ні}
  2.  Атрибут «Тип поїздки» може мати значення {по місту, відрядження, техобслуговування}

Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :

  1.  Відшукати номери машин, що вимагають ремонту
  2.  Скласти список водіїв, які їздили у відрядження заданого числа
  3.  Отримати інформацію про машини, що мають вантажопідйомність понад 5 тонн
  4.  Скласти список водіїв, які їздили в поїздки з кілометражем більше 200 км
  5.  Скласти список водіїв, що мають стаж понад 10 років
  6.  Відшукати прізвища і стаж водіїв, які їздили у відрядження  заданого числа
  7.  Відшукати водіїв, які ще не їздили в поїздки з кілометражем понад 100 км
  8.  Скласти список номерів машин, які не були ні в одній поїздці.

Варіант 6

Дисципліна(КодДисципліни, Назва, КодВикладача)

Викладач(КодВикладача, Прізвище, Імя, По-батькові, КодДисципліни)

Студент(КодСтудента, ПІБ, группа)

Заняття(№ заняття, дата, КодДисципліни)

Відвідування(№з/п, №заняття, КодСтудента, Присутність)

Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :

1. Визначте дисципліни викладача Іванова

2.Визначте дати пропусків заданого студента

3.Скласти список викладачів, які проводили зайняття заданого числа

4. Скласти список студентів заданої групи

5.Скласти список викладачів, які ведуть дисципліну «Математика».

6. Відшукати групи, в яких проводить зайняття викладач Петров.

7. Скласти список студентів, які не мають пропусків.

8.Знайти однофамільців серед викладачів і студентів.

Варіант 7

Готель(кодГотелю, Назва,адреса)

Номер(№, кількість_кімнат, вартість, кількість_місць, кодГотелю)

Постояльці(КодПостояльця, ПІБ, дата_заїзду,  паспортні дані, кількість_діб, №)

Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :

  1.  Вивести відомості про готелі і їх номери вартістю нижче 30 000руб.
  2.  Відшукати вільні номери в готелі «Білорусь»
  3.  Відшукати постояльців, які мешкали в готелі «Білорусь»більше 10 днів.
  4.  Відшукати вільні однокімнатні номери.
  5.  Отримати повні відомості про постояльців готелю «Білорусь», що мешкають в однокімнатних номерах.
  6.  Отримати повні відомості про усі номери готелю «Аврора»
  7.  Отримати повні відомості  про постояльців готелю «Білорусь», що знімають номер тільки одну добу
  8.  Перерахувати усі готелі;

Варіант 8

Пальник (КодПальника, Серійний_номер, тип, версія, кодПокупця)

Покупець( КодПокупця, ПІБ)

Ремонт(КодПальника, ремонт, вартість)

Написати вирази реляційної алгебри, що дозволяють виконати наступні запити :

1. Виведіть список версій усіх пальників типу "FiredNow".

2. Виведіть імена і адреси електронної пошти усіх покупців, на яких зареєстрований пальник типу "FiredNow".

3.  Виведіть список імен покупців, що не ремонтували свої пальники.

4. Отримати повну інформацію про пальники  покупця з номером NN.

5. Відшукати пальники, які не були в ремонті.

6. Відшукати покупців, у яких вартість ремонту пальника перевищувала 50 тис.грн

7. Відшукати серійні номери пальників типу  "FiredNow".

8.Визначте типи пальників, які зареєстровані, але не були в ремонті.


Варіант 9

Продавець(КодПродавця, Прізвище, Імя, По-батькові, відсоток_квоти, вік, зарплатня)

Покупець(кодПокупця, Прізвище, Імя, По-батькові)

Замовлення_покупців(КодЗамовлення, КодПокупця, КодПродавця, дата, сума)

Компанії(КодКомпанії, Назва, тип_промисловості, місто)

Замовлення_компаній(КодЗамовлення, дата, КодКомпанії, сума)

Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :

1.Виведіть імена продавців, у яких відсоток квоти менше 30%.

2. Відшукайте однофамільців серед покупців і продавців.

3. Виведіть тип промисловості і імена продавців для замовлень від компаній, що знаходяться в Гродно.

4. Виведіть замовлення кожного продавця.

5 .Отримати повні відомості про покупців, що зробили замовлення на суму більше 10 базових величин.

6..Виведіть імена і вік продавців, що мають замовлення від покупця Іванова.

7..Скласти список продавців у віці до 35 років, що мають зарплату більш ніж 5000 грн.

8. Скласти список продавців, що не мають замовлень.

Варіант 10

Постачальник(НомерПостачальник, Назва, місто)

Вироби(НомерВиробу, Назва, місто_вироблення)

Деталь(НомерДеталі, НазваДеталі)

Постачання(№, НомерДеталі, НомерПостачальника, НомерВиробу, кількість)

Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :

  1.  Отримати номери виробів, для яких деталі поставляє постачальник S1.
  2.  Отримати номери і прізвища постачальників, що поставляють деталь Р1
  3.  Скласти загальний список міст, представлених у базі.
  4.  Отримати номери постачальників з Мінська, які поставляли деталі в кількості більшому чим 1000.
  5.  Видати номери і назви виробів з міста Мінська.
  6.  Отримати кольори деталей, що поставляються постачальником S1.
  7.  Отримати номери деталей, що поставляються для якого-небудь виробу постачальником, що знаходиться в тому ж місті, де виготовляється цей виріб.
  8.  Скласти список виробів( номер виробу, назва виробу), для яких поставлялася деталь з номером Р1

Варіант 11

Дисципліна(КодДисципліни, Назва, КодВикладача)

Викладач(КодВикладача, Прізвище, Імя, По-батькові, КодДисципліни)

Студент(КодСтудента, ПІБ, группа)

Заняття(№ заняття, дата, КодДисципліни)

Відвідування(№з/п, №заняття, КодСтудента, Присутність)

Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :

 1. Визначте дисципліни викладача Петрова

2.Визначте дати та назви дисциплін  пропусків заданого студента

3.Скласти список викладачів, які  не проводили зайняття заданого числа

4. Скласти список студентів задангофакультету

5.Скласти список викладачів, які ведуть дисципліну «Інформатика».

6. Відшукати групи, в яких проводить зайняття викладач Смирнов.

7. Скласти список студентів, які мають пропуски.

8.Знайти однофамільців серед викладачів і студентів.

Варіант 12

Продавець(КодПродавця, Прізвище, Імя, По-батькові, відсоток_квоти, вік, зарплатня)

Покупець(кодПокупця, Прізвище, Імя, По-батькові)

Замовлення_покупців(КодЗамовлення, КодПокупця, КодПродавця, дата, сума)

Компанії(КодКомпанії, Назва, тип_промисловості, місто)

Замовлення_компаній(КодЗамовлення, дата, КодКомпанії, сума)

Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :

1.Виведіть імена продавців, у яких відсоток квоти більше 30%.

2. Відшукайте однофамільців серед покупців і продавців.

3. Виведіть тип промисловості і імена продавців для замовлень від компаній, що знаходяться в Донецьку.

4. Виведіть замовлення кожного покупця.

5 .Отримати повні відомості про компанії, що зробили замовлення на суму більше 10 базових величин.

6. Виведіть імена і вік продавців, що мають замовлення від покупця Сидорова.

7. Скласти список продавців у віці до 25 років, що мають зарплату менш  ніж 5000 грн.

8. Скласти список компаній, що не мають замовлень.


ПРАКТИЧНА РОБОТА №2

Тема:Реалізація операцій реляційної алгебри мовою SQL

Мета:Навчитися розробляти запити за допомогою базових конструкцій мови SQL

План

  1.  Реалізувати запити, написані реляційною алгеброю(пр.р. №1)  за допомогою базових конструкцій мови SQL:

  1.  Проаналізувати кожний запит написаний реляційною алгеброю;
  2.  Визначити речення мови SQL для написання еквівалентного запиту;
  3.  Написати запит;
  4.  Перевірити його вірне виконання;
    1.  Скласти звіт:
  5.  Умова запиту;
  6.  Текст запиту реляційною алгеброю;
  7.  Текст запиту SQL;
  8.  Результат виконання;
  9.  Відповіді на контрольні питання.

Контрольні питання

1. За допомогою якої фрази SQLможна реалізувати операції вибірка та проекція?

2. За допомогою яких фраз SQLможна реалізувати операції різниця та перетин?

За допомогою яких фраз SQLможна реалізувати операцію декартовий добуток?

ПРАКТИЧНА РОБОТА №3

Тема:Мова SQL. Запити до бази даних

Мета: Закріпити теоретичні та практичні навички розробки запитів для створення та обробки бази даних мовою SQL

План

1. Згідно з заданим варіантом розробити запити з використанням фраз SQLдля:

  1.  За допомогою команди Create створіть базу даних;
  2.  За допомогою команди Create створіть таблиці БД;
  3.  Запишіть текст запитів на мові SQL;

2. Дати відповіді на контрольні питання;

3. Скласти звіт:

  1.  Таблиці з даними;
  2.  Умова запиту
  3.  Текст запиту на мові SQL;
  4.  Результат виконання;
  5.  Відповіді на контрольні питання.

Контрольні питання

  1.  Яка фраза SQLпризначена для групування даних?
  2.  Яка фраза служить для встановлення зв’язку між таблицями?
  3.  При виконання яких умов можна використовувати фразу Having?
  4.  Перелічить агрегатні функції та їх призначення;
  5.  В яких фразах можна використовувати агрегатні функції?
  6.  Для яких функцій має бути використана фраза OrderBY?
  7.  Яка команда може бути використана для видалення таблиці?

ВАРІАНТ 1

довідник постачальників

Постачальник(КодПост, НазвПост, Статус, Місто);

довідник товарів

Товар(КодТовара, НазвТовара, Вага, Колір, Місто);

постачання  постачальником цього товару

Постачання(КодПост, КодТовара, Кількість).

  1.  Витягнути відомості про постачальників з середнім кол-вом товарів в постачанні вище 200: код, назва, к-ть постачань і сумарна к-ть товарів, що поставляються. Упорядкувати по назвах.
  2.  Дістати назви постачальників з міста Донецьк.
  3.  Отримати відомості про постачання: Назва постачальника, Назва товару, кількість.
  4.  Підрахувати сумарну кількість товарів постачальника «ВАТ Полюс».

ВАРІАНТ 2

довідник постачальників

Постачальник(КодПост, НазвПост, Статус, Місто);

довідник товарів

Товар(КодТовара, НазвТовара, Вага, Колір, Місто);

постачання цим постачальником цього товару

Постачання(КодПост, КодТовара, Кількість).

  1.  Витягнути відомості про постачальників з середньою вагою товарів в постачанні вище 50: код, назва, к-ть постачань і середня к-ть товарів, що поставляються. Упорядкувати по назвах.
  2.  Дістати назви товару синього кольору.
  3.  Отримати відомості про постачання: Назва постачальника, сумарна кількість товару.
  4.  Дістати назву товару, якого немає ні в одному постачанні.


ВАРІАНТ 3

Пацієнт(КодПациента, ФИОПациента, Категорія, ДатаРожд)

Лікар(КодВрача, ФИОВрача, Спеціалізація, Стаж)

Прийом(КодПациента, КодВрача, ДатаВремя, Кабінет)

1. Витягнути коди і ПІБ пацієнтів  категорії «пенсіонер», які в поточному році  не відвідували лікаря-терапевта. Рез-т упорядкувати по ПІБ пацієнтів.

2. Отримати прізвища пацієнтів, які  були на прийомі у лікаря терапевта 21.01.2008

3. Вичислити середній стаж лікарів стоматологів.

4.Отримати дані про прийом: ПІБ пацієнта, ПІБ лікаря, спеціалізація лікаря, дата прийому, кабінет.

ВАРІАНТ 4

Побудувати SQL- запит для вибірки відомостей з БД, що містить таблиці:

Пацієнт(КодПациента, ФИОПациента, Категорія, ДатаРожд)

Лікар(КодВрача, ФИОВрача, Спеціалізація, Стаж)

Прийом(КодПациента, КодВрача, ДатаВремя, Кабінет)

1. Витягнути коди і ПІБ пацієнтів  категорії «студент», які в поточному році відвідували лікаря-хірурга після  15 грудня. Результат упорядкувати по ПІБ пацієнтів.

2. Отримати прізвища пацієнтів, які не  були на прийомі у врача-трихолога 22.11.2008

3. Вичислити максимальний  стаж лікарів стоматологів.

4.Отримати дані про прийоми 21.11.2009: ПІБ пацієнта, ПІБ лікаря, спеціалізація лікаря, дата прийому, кабінет.

ВАРІАНТ 5

довідник постачальників

Постачальник(КодПост, НазвПост, Статус, Місто);

довідник товарів

Товар(КодТовара, НазвТовара, Вага, Колір, Місто);

постачання цим постачальником цього товару

Постачання(КодПост, КодТовара, Кількість).

  1.  Витягнути відомості про постачальників з мінімальним кол-вом товарів в постачанні вище 159: код, назва, к-ть постачань і сумарна к-ть товарів, що поставляються. Упорядкувати по назвах.
  2.  Дістати назви постачальників із статусом >20.
  3.  Отримати відомості про постачання: Назва постачальника, максимальна  кількість товару. Згрупувати по назві постачальників.
  4.  Підрахувати середню  кількість товарів постачальника «АТ Плюс».

ВАРІАНТ 6

Побудувати SQL- запит для вибірки відомостей з БД, що містить таблиці:

довідник постачальників

Постачальник(КодПост, НазвПост, Статус, Місто);

довідник товарів

Товар(КодТовара, НазвТовара, Вага, Колір, Місто);

постачання цим постачальником цього товару

Постачання(КодПост, КодТовара, Кількість).

  1.  Витягнути відомості про постачальників з середньою вагою товарів в постачанні вище 50: код, назва, к-ть постачань і середня к-ть товарів, що поставляються. Упорядкувати по назвах.
  2.  Дістати назви товару синього кольору.
  3.  Отримати відомості про постачання: Назва постачальника, сумарна кількість товару.
  4.  Дістати назву товару, якого немає ні в одному постачанні.

ВАРІАНТ 7

Побудувати SQL- запит для вибірки відомостей з БД, що містить таблиці:

Пацієнт(КодПациента, ФИОПациента, Категорія, ДатаРожд)

Лікар(КодВрача, ФИОВрача, Спеціалізація, Стаж)

Прийом(КодПациента, КодВрача, ДатаВремя, Кабінет)

1. Витягнути коди і ПІБ пацієнтів  категорії «пенсіонер», які в поточному році або не відвідували лікаря-терапевта. Рез-т упорядкувати по ПІБ пацієнтів.

2. Отримати прізвища пацієнтів, які  були на прийомі у лікаря терапевта 21.01.2008

3. Вичислити середній стаж лікарів стоматологів.

4.Отримати дані про прийом: ПІБ пацієнта, Фио лікаря, спеціалізація лікаря, дата прийому, кабінет.

ВАРІАНТ 8

Побудувати SQL- запит для вибірки відомостей з БД, що містить таблиці:

Пацієнт(КодПациента, ФИОПациента, Категорія, ДатаРожд)

Лікар(КодВрача, ФИОВрача, Спеціалізація, Стаж)

Прийом(КодПациента, КодВрача, ДатаВремя, Кабінет)

1. Витягнути коди і ПІБ пацієнтів  категорії «студент», які в поточному році відвідували лікаря-хірурга після  15 грудня. Результат упорядкувати по ПІБ пацієнтів.

2. Отримати прізвища пацієнтів, які не  були на прийомі у лікаря-психолога 22.11.2008

3. Вичислити середній   стаж лікарів онкологів.

4.Отримати дані про прийоми 26.02.2007: ПІБ пацієнта, ПІБ лікаря, спеціалізація лікаря, дата прийому, кабінет.

ВАРІАНТ 9

довідник постачальників

Постачальник(КодПост, НазвПост, Статус, Місто);

довідник товарів

Товар(КодТовара, НазвТовара, Вага, Колір, Місто);

постачання цим постачальником цього товару

Постачання(КодПост, КодТовара, Кількість).

  1.  Витягнути відомості про постачальників з мінімальним кол-вом товарів в постачанні вище 159: код, назва, к-ть постачань і сумарна к-ть товарів, що поставляються. Упорядкувати по назвах.
  2.  Дістати назви постачальників із статусом =120.
  3.  Отримати відомості про постачання: Назва постачальника, мінімальна  кількість товару. Згрупувати по назві постачальників.
  4.  Підрахувати середню  кількість товарів постачальника «АТ Мінус».

ВАРІАНТ 10

Побудувати SQL- запит для вибірки відомостей з БД, що містить таблиці:

Пацієнт(КодПациента, ФИОПациента, Категорія, ДатаРожд)

Лікар(КодВрача, ФИОВрача, Спеціалізація, Стаж)

Прийом(КодПациента, КодВрача, ДатаВремя, Кабінет)

1. Витягнути коди і ПІБ пацієнтів  категорії «пенсіонер», які в поточному році або не відвідували лікаря-терапевта. Рез-т упорядкувати по ПІБ пацієнтів.

2. Отримати прізвища пацієнтів, які  були на прийомі у лікаря терапевта 21.01.2008

3. Вичислити середній стаж лікарів стоматологів.

4.Отримати дані про прийом: ПІБ пацієнта, Фио лікаря, спеціалізація лікаря, дата прийому, кабінет.


ВАРІАНТ 11

довідникпостачальників

Постачальник(КодПост, НазвПост, Статус, Місто);

довідниктоварів

Товар(КодТовара, НазвТовара, Вага, Колір, Місто);

постачанняцимпостачальникомцього товару

Постачання(КодПост, КодТовара, Кількість).

1. Витягнутивідомості про постачальників з мінімальним кол-вом товаріввпостачаннівище 159: код, назва, к-тьпостачань і сумарна к-тьтоварів, щопоставляються. Упорядкувати по назвах.

2. Дістатиназвипостачальниківіз статусом >20.

3. Отримативідомості про постачання: Назвапостачальника, максимальнакількість товару. Згрупувати по назвіпостачальників.

4. Підрахуватисереднюкількістьтоварівпостачальника «АТ Плюс».

ВАРІАНТ 12

Пацієнт(КодПациента, ФИОПациента, Категорія, ДатаРожд)

Лікар(КодВрача, ФИОВрача, Спеціалізація, Стаж)

Прийом(КодПациента, КодВрача, ДатаВремя, Кабінет)

1. Витягнути коди і ПІБ пацієнтів  категорії «студент», які в поточному році відвідували лікаря-хірурга після  15 грудня. Результат упорядкувати по ПІБ пацієнтів.

2. Отримати прізвища пацієнтів, які не  були на прийомі у врача-трихолога 22.11.2008

3. Вичислити максимальний  стаж лікарів стоматологів.

4.Отримати дані про прийоми 21.11.2009: ПІБ пацієнта, ПІБ лікаря, спеціалізація лікаря, дата прийому, кабінет.


ПРАКТИЧНА РОБОТА №4

Тема:Проектуваннямоделі «Об’єкт/відносини»

Мета:Навчитися створювати інфологічну модель даних за допомогою ER- діаграми та мови інфологічного моделювання

План

 

  1.  Проаналізувати наочну область:
  2.  Провести аналіз предметної області
  3.  Виявити основні об'єкти
  4.  Визначити властивості виявлених об'єктів

2.Розробити модель «Об’єкт/відносини» у вигляді ER-діаграми.

3. Підготувати звіт:

  1.  Опис предметної області;
    1.  Опис об’єктів та їх властивостей;
      1.  Визначення асоціацій та типів зв’язків між об’єктами;
      2.  ER-діаграма.

Контрольні питання

  1.  Розкрийтепоняттяінфологічноїмоделіданих. Якіскладовіміститьінфологічна модель?
  2.  Як співвідносятьсяпоняттясутність, тип сутності, екземплярсутності?
  3.  Наведітьприкладицих понять з Вашоїспеціальності та навчальногопроцесу.
  4.  Розкрийтепоняттяатрибут. Наведітьсинонімицього слова. Які є типиатрибутів? Наведітьприклади.
  5.  Розкажіть про типизв’язківміжсутностями. Наведітьприклади з Вашоїспеціальності та навчальногопроцесу.
  6.  РозкрийтепоняттяER - моделі.
  7.  Як називаютьграфічнийспосібподанняER – моделі?


ВАРІАНТИ ДЛЯ ВИКОНАННЯ ЗАВДАНЬ

Варіант 1. Облік автомобілів у ДАІ.

Варіант 2. Облік гарантійного обслуговування у фірмі по торгівлі комп'ютерами й оргтехнікою.

Варіант 3. Облік автомобілів на автотранспортному підприємстві.

.Варіант4. Облік автобусів на автотранспортному підприємстві.

Варіант 5. Облік учнів у школі.

Варіант 6. Облік матеріалів на складі.

Варіант 7. Облік хворих у поліклініці.

Варіант 8. Облік хворих у платній лікарні.

Варіант 9. Облік дітей у дитсадку.

Варіант 10. Облік постачальників сировини на підприємство.

Варіант 11. Облік громадян міста.

Варіант 12. Облік руху поїздів на вокзалі.

Варіант 13. Облік товару в магазині.

Варіант 14. Облік оснащення й інструментів на складі цеху машинобудівного підприємства.

Варіант 15. Облік мешканців готелю.

Варіант 16. Облік замовників продукції підприємства.

Варіант 17. Облік прокату човнів на човновій станції.

Варіант 18. Облік аудіокасет в аудіотеці.


Методичні вказівки до виконання практичної роботи №4

База даних - сукупність взаємозв'язаних, що зберігаються разом даних за наявності такої мінімальної надмірності, яка допускає їх використання оптимальним чином для одного або декількох застосувань.

СУБД - це програмна система, що підтримує наповнення і маніпулювання даними, що представляють інтерес для користувачів при вирішенні прикладних завдань. Іншими словами, СУБД є інтерфейсом між базою даних і прикладними завданнями.

Проектування бази даних треба починати з аналізу наочної області і виявлення вимог до неї окремих користувачів.

Виділяють три рівні моделі даних:

  1.  інфологічна;
  2.  даталогічна;
  3.  фізична.

Інфологічна модель описує наочну область на змістовному рівні. На першому етапі при її розробці здійснюється аналіз наочної області, вирішуваних завдань, запитів користувачів і документів, що відображають події і процеси, що протікають в ПО. Результатом цього аналізу є списки об'єктів наочної області, переліки їх властивостей або атрибутів, визначення зв'язків між об'єктами і опис структури ПО у вигляді діаграми.

Концептуальна або даталогічна модель описує об'єкти і зв'язки ПО на формальному рівні. Її розробка ведеться на другому етапі і ґрунтується на інфологічній моделі, отриманої на першому етапі. В процесі розробки здійснюється вибір типа моделі даних, і визначаються її елементи.

Внутрішня, або фізична, модель даних визначає спосіб розміщення даних безпосередньо на машинному носієві, враховує розподіл даних, методи доступу і способи індексування. У сучасних прикладних програмних засобах цей рівень організації забезпечується автоматично без втручання користувача.

Першим етапом проектування бази даних будь-якого типу являється аналіз предметної області, що закінчується побудовою iнформацiйної структури (концептуальної схеми). На даномуетапiаналiзуютьсязапити користувачів, вибираютьсяiнформацiйнiоб'єкти та їх характеристики i на основiпроведеногоаналiзуформується структура предметноїобластi, яка не залежитьвiд програмного та технiчногосередовища, в якому буде реалiзуватися база даних.

Аналiзпредметноїобластiдоцiльно розбити на три фази:

- аналiзконцептуальнихвимог та iнформацiйних потреб;

- виявленняiнформацiйнихоб'єктiв та зв'язкiвмiж ними;

-побудоваконцептуальноїмоделiпредметноiобластi та проектуванняконцептуальноiсхемибазиданих.

На етапiаналізуконцептуальнихвимог та iнформацiйних потребнеобхiдновирiшитислiдуючiзадачi:

- аналiзвимогкористувача до базиданих (концептуальнихвимог);

- виявлення задач, щомаютьмiсце,при обробці iнформацiї, яка повинна бути представлена у базiданих (аналiздодаткiв);

- виявленняперспективних задач (перспективнихдодаткiв);

- документування результатів аналiзу.

Вимогамикористувачiв до розробляємоїбазиданих є, в загальномувипадку, список запитiв з вказаннямїхiнтенсивностi та об'ємiвданих. Цi вказівки опрацьовуються в дiалозi з майбутнім користувачембазиданих. Тут же з'ясовуються вимоги до вводу, вiдновленню та корегуванню iнформацiї. Вимогикористувачiвуточнюються та доповнюються при аналiзiперспективнихдодаткiв, щомаютьмiсце.

Приклад аналізу. Виходячиізспецифікидіяльності читального залу, необхіднозабезпечитиоблік книг, що є в наявності, виконуватишвидкийпошук творів, щовходять до складу тих чиінших книг. Крім того читальному залу потрібна картотека користувачів, що дозволяло б оперативно здійснювати з ними зв'язок, а також для виявленнякористувачів, які порушили строки повернення книги, повинна чиї твори є в наявності в читальному залі.Тоді в базу данихдоцільновключитиінформацію про: книги, що є в читальному залі; твори, щовходять до складу тих чиінших книг; користувачів, щокористуютьсяпослугами читального залу.

При цьому, розроблювана база даних повинна забезпечититакіфункції:

1.Введення картотеки користувачів.

В інформацію про користувачівдоцільновключититакідані:

  1.  прізвище, ім'я та по батькові;
  2.  адреса;
  3.  номер телефону;
  4.  паспортнідані;
  5.  освіта;
  6.  професія.
  7.  2. Облік книг, що є в читальному залічиякими в даний момент користуються:
  8.  назва книги;
  9.  автор книги;
  10.  ріквидання;
  11.  видавництво;
  12.  кількістьсторінок;
  13.  предметна область.

3. Введення картотеки творів, якімістяться в данійкнизі, включаєтакуінформацію:

  1.  назва;
  2.  автор;
  3.  дата написання.

4. Виявленняборжників, що не повернули книгу на протязі дня.

5. Формуванняданих про повернення книги.

Моделювання БД за допомогою ER-діаграм

Відомо, що проектування бази даних містить у собі наступні етапи: інфологічне проектування, ідаталогічне і фізичне проектування. На кожному з етапів необхідно створити свою модель даних. Сьогодні ми розглянемо засоби, що використовуються для створення інфологічної моделі даних. Познайомимося з характеристиками зв'язків між сутностями і видами сутностей, а також з використанням мови інфологічного моделювання для опису інфологічної моделі.

При побудові даталогічних моделей можна використовувати так називані ER-діаграми (від англ. Entity-Relationship, тобто сутність-зв'язок). На використанні різновидів ER-моделі заснована більшість сучасних підходів до проектування баз даних (головним чином, реляційних). Даний спосіб проектування був запропонований Ченом (Chen) у 1976 р. Моделювання предметної області базується на використанні графічних діаграм, що включають невелику кількість різнорідних компонентів. У зв'язку з наочністю уявлення концептуальних схем баз дані ER-моделі одержали широке поширення в системах CASE – системах автоматизованого проектування реляційних баз даних, наприклад, ERWIN. Серед безлічі різновидів ER-моделей одна з найбільш розвинених застосовується в системі CASE фірми ORACLE.

У  ER-моделі сутності зображуються позначеними прямокутниками, асоціації (зв'язки) – позначеними ромбамиабо шестикутниками, атрибути – позначеними овалами, а зв'язки між ними – ненаправленими ребрами, над якими може проставлятися ступінь зв'язку (1 абобуква, що заміняє слово "багато") і необхідне пояснення.

Між двома сутностями, наприклад, А и В можливі чотири види зв'язків.

Перший тип – зв'язок ОДИН-ДО-ОДНОГО (1:1): у кожен момент часу кожному представнику (екземпляру) сутності А відповідає 1 або 0 представників сутності В:

Рис. 5.1.  Приклад зв'язків «один до одного».

Студент може не "заробити" стипендію, одержатизвичайнуабо одну з підвищених стипендій.

Другий тип – зв'язок ОДИН-ДО-БАГАТЬОХ (1:М): одному представнику сутності А відповідають 0, 1 або кілька представників сутності В.

Рис. 5.2. Приклад зв'язків «один до багатьох».

Квартира може пустувати, у ній може жити один або кілька мешканців. Тому що між двома сутностями можливі зв'язки в обох напрямках, то існує ще два типи зв'язку БАГАТО-ДО-ОДНОГО (М:1) і  БАГАТО-ДО-БАГАТЬОХ (М:N).

Приклад 1. Якщо зв'язок між сутностями ЧОЛОВІКА і ЖІНКИ називається ШЛЮБ, то існує чотири можливих представлення - такі зв'язки:

Рис. 5.3. Приклади зв'язків між сутностями «ЧОЛОВІКА-ЖІНКИ».

Характер зв'язків між сутностями не обмежується перерахованими.

а)

б)

Рисунок1. - Приклади множинних зв'язків між сутностями.

Існують і більш складні зв'язки:

  1.  безліч зв'язків між тими самими сутностями (рис. 5.4а.) пацієнт, має одного лікуючого лікаря, і може мати також трохи лікарів-консультантів; лікар може бути лікуючим  лікарем кількох пацієнтів і може одночасно консультувати кілька інших пацієнтів;
  2.  тернарні зв'язки (рис. 5.4 б.) лікар може призначити кілька пацієнтів на кілька аналізів, аналіз може бути призначений кількома лікарями кільком пацієнтам і пацієнт може бути призначений на кілька аналізів кількома лікарями;
  3.  зв'язки більш високих порядків, семантика (зміст) яких іноді дуже складна.

У наведених прикладах для підвищення ілюстративності розглянутих зв'язків не показані атрибути сутностей і асоціацій у всіх ER-діаграмах.


ПРАКТИЧНА РОБОТА № 5

Тема:Проектуваннялогічноїструктурибази даних

Мета:Закріпити теоретичні знання про  реляційну модель даних. Навчитися перетворювати ER - діаграми до реляційної бази даних

Завдання

Спроектувати реляційну модель даних методом перетворення ER-діаграми до реляційної БД.

Хід роботи

1. Проаналізувати  ER-діаграму (практична робота №4);

2. Спроектувати реляційну базу даних згідно правил Кодда;

3. Накреслити схему даних: вказати первинні та зовнішні ключі, типи зв’язків між відношеннями;

4. Скласти звіт.

Контрольні питання

1. Поняття відношення в реляційній моделі даних;

2. Поняття цілісності даних;

3. Поняття первинного та зовнішнього ключа;

4. Поняття посилальної цілісності;

5.Представленняоб’єктів ER-діаграми в реляційній моделі;

Методичні вказівки до виконання

Розглянемо етапи перетворення інфологічної моделі в реляційну схему бази даних.

Правила проектування таблиць :

Рис. 1

     А

      В

1                                         1  

     А

      В

1                                         n

     А

      В

Nm

     А

      В

1                                         n

C

m

R1(A, B…) илиR1(B, A…)

R1(A, …)R2(B, A…)

R1(A, …)R2(B, …)R3(A, B …)

R1(A, …) R2(B, …)R3(C, …)

R4(C, B ,A…)

Крок 1. Кожна проста сутність перетворюється в таблицю. Ім'я сутності стає ім'ям таблиці.

Крок 2. Кожен атрибут стає можливим стовпцем з тим же ім'ям; може вибиратися більш точний формат.

Крок 3. Компоненти унікального ідентифікатора сутності перетворюються в первинний ключ таблиці. Якщо є кілька можливих унікальних ідентифікаторів, вибирається найбільш використовуваний. Якщо до складу унікального ідентифікатора входять зв'язки, до числа стовпців первинного ключа додається копія унікального ідентифікатора сутності, що знаходиться на дальньому кінці зв'язку (цей процес може продовжуватися рекурсивно). Для іменування цих стовпців використовуються імена кінців зв'язків і/або імена сутностей.

Крок 4. Зв'язки багато-до-одного (і один-до-одного) стають зовнішніми ключами. Тобто, робиться копія унікального ідентифікатора з кінця зв'язку "один", і відповідні стовпці складають зовнішній ключ. Необов'язкові зв'язки відповідають стовпцям, що допускають невизначені значення; обов'язкові зв'язки - стовпцям, що не допускають невизначені значення.

Крок 5. Індекси створюються для первинного ключа (унікальний індекс), зовнішніх ключів і тих атрибутів, на яких передбачається в основному базувати запити.

Тобто весь алгоритм можна описати таким чином:

  1.  Асоціації попарно аналізуються та перетворюються в реляційні відношення згідно правил проектування таблиці.
  2.  Після аналізу всіх асоціацій отримані відношення об’єднуються за правилами об’єднання множин.  

Наведемо приклад

ЛАБОРАТОРНА РОБОТА № 1

Тема: Проектування фізичної моделі даних

Мета: Навчитися проектувати фізичну модель даних для СУБД MicrosoftAccess

 

Завдання

Cпроектувати фізичну модель даних для реляційної бази даних (практична робота № 5)

Хід роботи

1 . Описативсі поля кожного з відносин в термінах Access;

2. Прорахуватиоб'ємпам'яті, займаний одним кортежем даних в кожному з відносин БД;

3. Реалізувати базу даних в СУБД Access;

3.Представитиграфічнезображеннясхеми даних;

4.Вказатитипизв'язку, первинні і зовнішніключі.

5. Написатикоманди на мові SQLдля створення БД, відносин та зв’язків між ними.

Контрольніпитання

  1.  Дайте поняття БД;
  2.  Дайте поняттяфізичної моделі даних;
  3.  Опишітьосновні об’єкти MicrosoftAccess.

Методичнівказівки до виконаннялабораторноїроботи №1

Під фізичною моделлю даних розуміють опис логічної структури БД в термінах вибраної СУБД.

У цій моделі описуються:

  1.  Таблиці бази даних(структура, властивості полів, типи даних, розмірність);
  2.  Зв'язки між таблицями(первинні, зовнішні ключі, обмеження цілісності);

В приведеній нижче таблиці вказані всі типи даних, їх призначення і розміри.

Тип даних

Використовування

Розмір

Текстовий

Текст або комбінація тексту і чисел, наприклад, адреси, а також числа, що не вимагають обчислень, наприклад, номерителефонів, інвентарніномериабопоштовііндекси.

До 255 символів.

Поле MЕМО

Довгий текст або числа, наприклад, приміткиабо описи.

До 64  000 символів.

Поле MЕМО

Довгий текст або числа, наприклад, примітки або описи.

До 64  000 символів.

Числовий

Числові дані, що використовуються для математичних обчислень, за винятком фінансових розрахунків (для них слід використовувати тип «Грошовий»).

1, 2, 4 або 8 байтів.

Дата/час

Дати і час.

8 байтів.

Грошовий

Значення валют. Грошовий тип використовується для запобігання округлень під час обчислень. Припускає до 15 символів в цілій частині числа і 4 - в дробовій.

8 байтів.

Лічильник

Автоматична вставка послідовних (що збільшуються на 1) або випадкових чисел при додаванні запису.

4 байти.

Логічний

Поля, що містять тільки одне з двох можливих значень, таких як «Да/Нет», «Істина/брехня, «вкл/викл».

1 біт.

У реляційній базі даних зв'язку дозволяють уникнути надмірності даних. Наприклад, в ході створення бази даних, що містить відомості про книги, може з'явитися таблиця під назвою "Книги", в якій зберігатимуться параметри кожної книги, такі як її назва, дата публікації і видавець. Крім того, є і додаткові відомості про видавця, які може потрібно зберегти, такі як його телефонний номер, адресу і поштовий індекс. Якщо зберігати їх в таблиці з книгами, то телефонний номер видавця повторюватиметься для кожної опублікованої ним книги.

Правильнішим варіантом є винесення відомостей про видавців в окрему таблицю "Видавці". При цьому таблиця "Книги" міститиме посилання на записи таблиці "Видавці".

Щоб зберегти синхронізацію, слід забезпечити цілісність даних між таблицями "Книги" і "Видавці". Зв'язки із забезпеченням цілісності даних дозволяють стежити за тим, щоб дані в одній таблиці відповідали даним в іншій. Наприклад, кожна книга в таблиці "Книги" пов'язана з певним видавцем в таблиці "Видавці". Додати в таблицю книгу для видавця, відсутнього у базі даних, неможливо.

Види зв'язків між таблицями

Зв'язок здійснюється шляхом зіставлення даних в ключових стовпцях; звичайно це стовпці, що мають в обох таблицях однакові назви. У більшості випадків зіставляються первинний ключ однієї таблиці, унікальний ідентифікатор, що містить для кожного з рядків, і зовнішній ключ іншої таблиці. Наприклад, з кожним з видань, що знаходяться у продажу, можна зв'язати об'єми його продажів шляхом створення стовпця "ИД_видання" в таблиці "Книги"(первинний ключ) і стовпця "ИД_видання" в таблиці "Продажу"(зовнішній ключ).

Існує три види зв'язків між таблицями. Вид створюваного зв'язку залежить від того, як задані пов'язані стовпці.Зв'язки "один до багатьом" Зв'язок "один до багатьом" - найбільш поширений вид зв'язку. При такому зв'язку кожному рядку таблиці А може відповідати безліч рядків таблиці б, проте кожному рядку таблиці б може відповідати тільки один рядок таблиці А. Наприклад, між таблицями "Видавці" і "Книги" встановлений зв'язок "один до багатьом": кожен з видавців може опублікувати безліч книг, проте кожна книга публікується лише одним видавцем.

Зв'язок "один до багатьом" створюється у тому випадку, коли тільки на один із зв'язуваних стовпців накладено обмеження унікальності або він є первинним ключем.

У MicrosoftAccess сторона зв'язку "один до багатьом", якій відповідає первинний ключ, позначається символом ключа. Сторона зв'язку, якому відповідає зовнішній ключ, позначається символом нескінченності.

Зв'язки "багато до багатьом"

При встановленні зв'язку "багато до багатьом" кожному рядку таблиці А може відповідати безліч рядків таблиці б і навпаки. Такий зв'язок створюється за допомогою третьої таблиці, званої сполучної, первинний ключ якої складається із зовнішніх ключів, пов'язаних з таблицями А і Б. Наприклад, між таблицями "Автори" і "Книги" встановлений зв'язок виду "багато до багатьом", що задається за допомогою зв'язків виду "один до багатьом" між кожною з цих таблиць і таблицею "АвторыКниг". Первинний ключ таблиці "АвторыКниг" - це поєднання стовпців "ИД_автора"(первинного ключа таблиці авторів) і "ИД_книги"(первинного ключа таблиці заголовків).

Зв'язки "один до одного"

При встановленні зв'язку "один до одного" кожному рядку таблиці А може відповідати тільки один рядок таблиці б і навпаки. Зв'язок "один до одного" створюється у тому випадку, коли обидва пов'язані стовпці є первинними ключами або на них накладені обмеження унікальності.

Цей вид зв'язку використовується рідко, оскільки в такій ситуації зв'язувані дані зазвичай можна зберігати в одній таблиці. Використати зв'язок виду "один до одного" можна у вказаних нижче случаях.- Щоб розділити таблицю, що містить надто багато столбцов.- Щоб ізолювати частину таблиці з міркувань безопасности.- Для зберігання даних короткочасного використання, видалити які найпростіше шляхом очищення таблицы.- Для зберігання даних, що мають відношення тільки до підмножини основної таблиці.УMicrosoftAccess сторона зв'язку "один до одного", якій відповідає первинний ключ, позначається символом ключа. Сторона зв'язку, якому відповідає зовнішній ключ, також позначається символом ключа.

Створення зв'язків між таблицями

При встановленні зв'язку між таблицями пов'язані поля не обов'язково повинні мати однакові назви. При цьому у них має бути один і той же тип даних, якщо тільки поле, що є первинним ключем, не відноситься до типу "Лічильник". Полі типу "Лічильник" можна зв'язати з полем типу "Числової" тільки у тому випадку, якщо для властивості FieldSize(розмір поля) кожного з них задано одне і те ж значення. Наприклад, можна зв'язати стовпці типів "Лічильник" і "Числовий", якщо для властивості FieldSize кожного з них встановлено значення "Довге ціле". Навіть якщо обидва зв'язувані стовпці відносяться до типу "Числовою", значення властивості FieldSize для обох полів має бути однаковим.

Створення зв'язків "один до багатьом" або "один до одного"

Щоб створити зв'язок виду "один до багатьом" або "один до одного", скористайтеся приведеною нижче послідовністю дій :

1. Закрийте усі відкриті таблиці. Створювати або змінювати зв'язки між відкритими таблицями не можна.

2. У Access версій 2002 або 2003 виконаєте вказані нижче дії.

a. Натисніть клавішу F11, щоб перейти у вікно бази даних.

b. У меню Сервіс виберіть команду Зв'язки.

У Access 2007 натисніть кнопку Зв'язки в групі Показати або приховати вкладки Інструменти для баз даних.

3. Якщо у базі даних відсутні зв'язки, то автоматично з'явиться діалогове вікно Додавання таблиці. Якщо вікно Додавання таблиці не з'явилося, але при цьому треба додати таблиці в список зв'язуваних, виберіть команду Додати таблицю в меню Зв'язку.

4. Двічі клацніть назви таблиць, які необхідно зв'язати, після чого закрийте діалогове вікно Додавання таблиці. Щоб зв'язати таблицю з самою собою, додайте її двічі.

5. Перетягніть зв'язуване поле з однієї таблиці на зв'язуване поле в іншій. Щоб перетягнути декілька полів, натисніть клавішу CTRL, клацніть кожне поле, а потім перетягнете їх.

У більшості випадків знадобиться перетягнути поле первинного ключа(виділене напівжирним текстом) з однієї таблиці на аналогічне поле(часто з тією ж самою назвою), що називається зовнішнім ключем, іншої таблиці.

6. З'явиться вікно Зміна зв'язків. Переконайтеся, що в кожному із стовпців відображаються назви потрібних полів. Якщо потрібно, їх можна змінити.

При необхідності задайте параметри зв'язку. Якщо потрібно відомості про конкретний елемент вікна Зміна зв'язків, натисніть кнопку зі знаком питання, а потім клацніть відповідний елемент. Ці параметри будуть детально описані нижче.

7. Щоб встановити зв'язок, натисніть кнопку Створити.

8. Повторіть дії з 5 по 8 для кожної пари зв'язуваних таблиць.

При закритті діалогового вікна Зміна зв'язків MicrosoftAccess запитає, чи треба зберегти макет. Незалежно від відповіді на це питання створювані зв'язки зберігаються у базі даних.

Примітка. Створювати зв'язку можна не лише в таблицях, але і в запитах. При цьому, проте, не забезпечується цілісність даних.

Створення зв'язків "багато до багатьом"

Щоб створити зв'язок виду "багато до багатьом", виконаєте вказані нижче дії.

1. Створіть дві таблиці, які необхідно зв'язати відношенням "багато до багатьом".

2. Створіть третю таблицю, що називається сполучною, і додайте в неї поля з тими ж визначеннями, що і поля первинних ключів в кожній з двох інших таблиць. Поля первинних ключів сполучної таблиці служать зовнішніми ключами. У сполучну таблицю, як і у будь-яку іншу, можна додати і інші поля.

3. Задайте первинний ключ цієї таблиці так, щоб він включав поля первинних ключів обох основних таблиць. Наприклад, первинний ключ сполучної таблиці "АвторыКниг" складатиметься з полів "ИД_замовлення" і "ИД_продукту".

Примітка. Щоб створити первинний ключ, виконаєте вказані нижче дії.

a. Відкрийте таблицю в режимі конструктора.

b. Виберіть одне або декілька полів, які необхідно визначити в якості первинного ключа. Щоб вибрати одне поле, клацніть знак вибору рядка для потрібного поля.

Щоб вибрати декілька полів, утримуйте натиснутою клавішу CTRL і клацніть знак вибору рядка для кожного з полів.

c. У Access версій 2002 або 2003 натисніть кнопку Первинний ключ на панелі інструментів.

У Access 2007 натисніть кнопку Первинний ключ в групі Сервіс вкладки Структура.

Примітка. Щоб порядок дотримання полів в первинному ключі, що складається з декількох полів, відрізнявся від такого в таблиці, натисніть кнопку Індекси на панелі інструментів, внаслідок чого з'явиться діалогове вікно Індекси, в якому можна змінити порядок дотримання полів індексу під назвою КлючевоеПоле.

4. Встановіть зв'язок виду "один до багатьом" між кожною з двох головних таблиць і сполучною таблицею.

Цілісність даних - це система правил MicrosoftAccess, яка використовується для перевірки допустимості стосунків між записами пов'язаних таблиць і для того, щоб не дозволити випадково видалити або змінити пов'язані дані. Настроїти перевірку цілісності даних можна при дотриманні усіх вказаних нижче умов.

• Зв'язуване поле з головної таблиці є первинним ключем або має однозначний індекс.

• Зв'язувані поля повинні мати однаковий тип даних. Існує два виключення. Полі типу "Лічильник" може бути пов'язаний з числовим полем, якщо для властивості FieldSize у нього встановлено значення "Довге ціле"; крім того, можна зв'язати поле "Лічильник" з числовим полем, якщо у них обох для властивості FieldSize задано значення "Код реплікації".

• Обидві таблиці належать до однієї і тієї ж бази даних MicrosoftAccess. Якщо таблиці пов'язані, то вони повинні мати формат MicrosoftAccess, а для налаштування цілісності даних необхідно відкрити ту базу даних, в якій вони зберігаються. Забезпечити цілісність даних для таблиць, що знаходяться у базах даних іншого формату, неможливо.

При забезпеченні цілісності даних використовуються вказані нижче правила.

• Неможливо присвоїти полю зовнішнього ключа пов'язаної таблиці значення, відсутнє в списку значень первинного ключа головної таблиці. При цьому можна задати для зовнішнього ключа порожнє значення(Null), вказавши, що записи не пов'язані. Наприклад, не можна створити замовлення для неіснуючого клієнта, але можна створити замовлення, не присвоєне жодному з клієнтів, задавши для поля "Клієнт" порожнє значення.

• Неможливо видалити запис з головної таблиці, якщо в пов'язаній таблиці є записи, що відповідають їй. Наприклад, не можна видалити запис співробітника з таблиці "Співробітники", якщо йому призначені замовлення в таблиці "Замовлення".

• Неможливо змінити значення первинного ключа в головній таблиці, якщо з цим записом пов'язані інші записи. Наприклад, не можна змінити ИД співробітника в таблиці "Співробітники", якщо йому призначені замовлення в таблиці "Замовлення".

Каскадні оновлення і видалення

Якщо для зв'язку включено забезпечення цілісності даних, можна задати режим автоматичного каскадного оновлення або видалення пов'язаних записів засобами MicrosoftAccess. Установка цих параметрів дозволяє операції видалення і оновлення, виконання яких інакше було б заборонене правилами цілісності даних. При видаленні записів або зміні значень первинного ключа в головній таблиці MicrosoftAccess вносить необхідні зміни в усі пов'язані таблиці для збереження цілісності даних.

Якщо в процесі створенні зв'язку встановити прапорець каскадне оновлення пов'язаних полів, то при будь-якій зміні значення первинного ключа запису в головній таблиці MicrosoftAccess автоматично відновить значення відповідного поля в усіх пов'язаних записах. Наприклад, при зміні ИД клієнта в таблиці "Клієнти" поле "Клієнт" в таблиці "Замовлення" автоматично оновиться для усіх замовлень цього клієнта, щоб зберегти зв'язок. MicrosoftAccess виконає каскадне оновлення без виведення додаткових повідомлень.

Примітка. Якщо первинний ключ в головній таблиці є полем типу "Лічильник", установка прапорця каскадне оновлення пов'язаних полів не подіє, оскільки міняти значення поля типу "Лічильник" не можна.

Якщо в процесі створення зв'язку встановити прапорець каскадне видалення пов'язаних записів, то при видаленні будь-якого запису з головної таблиці MicrosoftAccess автоматично видалить пов'язані записи і в пов'язаній таблиці. Наприклад, якщо видалити запис клієнта з таблиці "Клієнти", то усі замовлення цього клієнта будуть автоматично видалені з таблиці "Замовлення"(включаючи записи таблиці "Зведення про замовлення", пов'язані із записами таблиці "Замовлення"). При видаленні записів з форми або таблиці зі встановленим прапорцем каскадне видалення пов'язаних записів MicrosoftAccess попереджає, що пов'язані записи також будуть видалені. Проте при видаленні записів за допомогою запиту на видалення MicrosoftAccess автоматично видалить записи з пов'язаних таблиць без виведення попередження.

Типи з'єднань

Нижче перераховані існуючі типи з'єднань.

Варіант 1 - внутрішнє з'єднання. Внутрішнє з'єднання - це з'єднання, при якому записи з двох таблиць об'єднуються в результатах запиту лише у тому випадку, якщо значення пов'язаних полів відповідають заданій умові. Внутрішнє з'єднання є типом з'єднання за умовчанням, в результаті в запиті відбувається вибірка лише тих записів, для яких значення пов'язаних полів співпадають.

Варіант 2 - ліве зовнішнє з'єднання. Ліве зовнішнє з'єднання - це з'єднання, при якому усі записи таблиці ліворуч від оператора LEFT JOIN(ліве об'єднання) інструкції SQL потрапляють в результати запиту навіть у тому випадку, якщо в пов'язаному полі з правої таблиці відсутні відповідні значення.

Варіант 3 - праве зовнішнє з'єднання. Праве зовнішнє з'єднання - це з'єднання, при якому усі записи таблиці праворуч від оператора RIGHT JOIN(праве об'єднання) інструкції SQL потрапляють в результати запиту навіть у тому випадку, якщо в пов'язаному полі з лівої таблиці відсутні відповідні значення.

Приклад

БД міститьнаступнівідносини:

Первинніключі, Зовнішніключі

Фільм (КФ, Назва, КР, КК, ріквипуску)

Режисер (КР, Режисер, Інформація)

Кінокомпанія (КК, Компанія, інформація)

Типи зв'язків  :

Фільм – Режисер («1: »);

Кінокомпанія-Фільм («1: »).

Об'ємпам'яті, займаний одним кортежем БД повинен бути представлений в наступномувигляді.

Назва поля

Тип даних

Об'ємпам'яті (Qi)

Розрахунок, займаногооб'ємупам'яті для одного рядка однієїтаблиці  провести по формулі:

р=∑Qi, де i-номер поля в таблиці.

Розрахунок, займаногооб'ємупам'яті для всієї БД

P=∑рj, де j-номер таблиці в БД.

Приклад.

Ненормалізована БД

Назва

Тип даних

Об'ємпам'яті

Назвафільму

текст(20)

20 байт

Режисер

текст(20)

20 байт

Інф. про режисера

Текст

255 байт

Кінокомпанія

текст(20)

20 байт

Інф. про режисера

Текст

255 байт

Ріквипуску

Числовий

4 байти

Р=20+255+20+255+4=554 байта

Кінокомпанія (КК, Компанія, інформація)

Назва

Тип даних

Об'ємпам'яті

КК

текст(5)

5 байт

Інформація

Текст

255 байт

Компанія

текст(20)

20 байт

р=5+255+20=280 байт.

Фільм (КФ, Назва, КР, КК, ріквипуску)

Назва

Тип даних

Об'ємпам'яті

КФ

текст(5)

5 байт

КР

Текст

255 байт

КК

текст(5)

5 байт

Назва

текст(20)

20 байт

Ріквипуску

числовий

4 байти

р=5+255+5+20+4=289 байт.

Режисер (КР, Режисер, Інформація)

Назва

Тип даних

Об'ємпам'яті

КР

текст(5)

5 байт

Інформація

Текст

255 байт

Режисер

текст(20)

20 байт

р=5+255+20=280 байт.Р=280+280+289=849 байт.


Лабораторна робота №2

Тема:Розробка додатку з використанням інтерфейсу ADO

Мета: Вивчення  компонентів ADO, що забезпечують доступ до бази даних Microsoft Access, уміння створити програму що дозволяє отримати інформацію з бази даних і представити її у формі таблиці.

Завдання

Згідно заданої предметної області розробити програму обробки баз даних з використанням компонентів ADO

 

Хід роботи

1. Зображуйте на папері таблицю бази даних, яку необхідно створити

2. Створіть базу даних

3. Запишіть на папері SQL- команду, що забезпечує вибір з бази даних необхідної інформації

4. Створіть програму роботи з базою даних

5. Продемонструйте працюючу програму викладачеві

Звіт про роботу повинен містити:

1. Зображення заповненою інформацією таблиці бази даних(можна вид таблиці в Microsoft Access)

2. Список імен полів записів(імен стовпців таблиці), що утворюють таблицю бази даних

3. SQL- команду, що забезпечує вибір з бази даних інформації

4. Ескіз форми застосування роботи з базою даних

5. Таблицю значень властивостей компонентів, що забезпечують роботу з базою даних

6. Текст процедури обробки події на кнопці Запит

7. Приклад роботи програми(вид вікна програми після виконання запиту)


Методичні вказівки до виконання

Створення бази даннях

За допомогою Microsoft Access створіть базу даних і наповніть її інформацією(20 записів).

Зауваження.Імена таблиць бази даних і імена полів записів слід записувати латинськими буквами без пропусків.

Створення застосування в Delphi для роботи з базою даних Microsoft Access

1. Створити проект. Помістити на форму компонент ADOConnection(знаходиться на вкладці ADO) і виконати його налаштування(таблиця. 1).

Таблиця 1. Значення властивостей компонента ADOConnection

Властивість

Значення      

Примітка

LoginPrompt

False

ConnectionString

Зробити клацання на кнопці з трьома точками (знаходиться в полі значення

властивості); зробити клацання на кнопці Build; на вкладці Постачальник даних вибрати Microsoft Jet 4.0 OLEDB Provider; на вкладці Підключення зробити клацання на кнопці з трьома точками і у вікні, що з'явилося, вказати файл бази

даних.

2. Помістити на форму компонент ADODataSet(знаходиться на вкладці ADO) і виконати його налаштування(таблиця. 2).

Таблиця 2.Значення властивостей компонента ADODataSet

Властивість

Значення      

Примітка

Connection

Ім'я компонента

ADOConnection

що забезпечує з'єднання з

БД

Розкрити список, що знаходиться в полі

значення властивості, і вибрати ім'я

компонента

CommandText

SQL- команда, що забезпечує

отримання інформації з БД

Приклад: SELECT * FROM  Ім'я_таблиці ORDER

BY Ім'я_поля

Active

True

3. Помістити на форму компонент DataSource(знаходиться на вкладці Data Access) і

виконати його налаштування(таблиця. 3).

Таблиця 3. Значення властивостей компонента DataSource

Властивість

Значення      

Примітка

DataSet

Ім'я компонента ADODataSet

Розкрити список, що знаходиться в полі

значення властивості, і вибрати ім'я

компонента


4. Помістити на форму компонент DBGrid(знаходиться на вкладці DataControls) і виконати його налаштування(таблиця. 4).

Таблиця 4. Значення властивостей компонента DBGrid

Властивість

Значення      

Примітка

DataSource

Ім'я компонента DataSource

Розкрити список, що знаходиться в полі

значення властивості, і вибрати ім'я

компонента

5. Продовжити налаштування компонента DBGrid :

  1.  Зробити клацання на кнопці з тім'я точками, яка знаходиться в полі значення властивості Columns;
  2.  У появивишемся вікні EditingDBGridColumns зробити клацання на кнопці ALLfields. ;
  3.  Вибрати елемент, доданий у вікно EditingDBGridColumns, і у вікні ObjectInspectot задати значення властивостей, що визначають вид стовпця : Title.Caption - заголовок; Width-ширина).
  4.  Повторити описані вище дії для кожного стовпця таблиці бази даних, DBGrid, що відображається в полі.

6. Помістити на форму компонент Edit. У полі цього компонента користувач вводитиме

SQL- запит на вибір інформації з бази даних.

7. Помістити на форму компонент Button і створити процедуру обробки події Click

(лістинг 1 ), що забезпечує виконання SQL- команди, введеної користувачем в полі компонента Edit.

Лістинг 1. Процедура обробки події Click на кнопці Запит(Button1).

procedure TForm1.Button3Click(Sender: TObject);

begin

try

ADODataset1.Close;

ADODataset1.CommandText:= Edit1.Text;

ADODataset1.Open;

Exceptone:

Exceptiondo

begin

ShowMessage(e.Message);

end;

end;

end;

8. Змініть процедуру обробки події на кнопці Запит так, щоб в полі редагування  користувач вводив не SQL- команду, а критерій відбору записів(лістинг 2).

Лістинг 2. Процедура обробки події Click на кнопці Запит(Button1).

procedure TForm1.Button3Click(Sender: TObject);

begin

ADODataset1.Close;

ADODataset1.CommandText:=

'SELECT * FROM Ім'я_таблиці WHERE ' +

'ім'я_поля Like ' '%' + Form1.Edit1.Text + '%'' ';

ADODataset1.Open;

end;




1. Дайв Windows 2000-XP-Vist www
2. Введение Сущность критерии и показатели экономической эффективности производства Основные направл.html
3.  К средствам массовой коммуникации возникновение которых связано с переходом к постиндустриальному общест
4. Тема- Сопряжение. Метод объектное и полярное отслеживание
5. американских исследований 19931996 гг
6. Демэкология гылымы зерттейды
7. Ши-Тцу- исторический очерк
8. качество жизни большое внимание ориентируют на экономическую сторону материальную обеспеченность жизни
9. деятельности принято выделять четыре основных модели
10. Введение На корпус движущегося судна могут действовать постоянные и случайные нагрузки
11. Тема- Путешествие по русским народным сказкам
12. Сочинения Джона Мильтона
13. Процесс объективного научного познания так же диалектичен как и сама реальная действительность
14. Розрахунок роботи автоматичного обладнання
15. Матрицы действия с ними
16. Развитие малого бизнеса в МО
17.  В теории и практике федерализма стержневым вопросом является разграничение предметов ведения и полномочий
18. на тему ББББББ Вера в пророков является одним из основных положений религии ибо вторая часть шахады сви
19. Тема 11 Анализ интенсивности динамики 11
20. Сетевые коммуникации