Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
ВСТУП
Метою навчальної дисципліни "Бази даних" є формування у студентів системи фундаментальних теоретичних і практичних знань щодо:
Завданнями дисципліни є вивчення основних принципів функціонування сучасних баз даних та систем управління базами даних (СУБД), ознайомлення з архітектурою та моделями БД, принципами проектування та роботи реляційних баз даних, освоєння сучасного програмного забезпечення для роботи з БД, впровадження та супроводження інформаційних технологій на підприємствах із застосуванням електронних баз даних.
Предметом вивчення дисципліни "Бази даних" є методологія проектування та використання сучасних баз даних та СУБД; принципи проектування реляційних баз даних та використання сучасного програмного забезпечення для роботи з БД.
Завданням лабораторних робіт є закріплення теоретичного матеріалу дисципліни «Бази даних» і отримання практичних навичок по створенню і використанню баз даних.
З цією метою по курсу банки і бази даних були виконані наступні практичні та лабораторні роботи роботи:
Практична робота № 1 -2
Практична робота №2 -2
Практична робота № 3 -2
Практична робота № 4 -2
Практична робота № 5 -2
Лабораторна №1 -2
Лабораторна №2 -2
ПРАКТИЧНА РОБОТА № 1
Тема: Реляційна алгебра. Запити
Мета: Ознайомлення з основними операціями реляційної алгебри, придбання практичних навичок їх використання.
2. Скласти звіт, що повинен складатися з таких розділів:
Контрольні питання
1. Призначення і роль реляційної алгебри.
2. Перерахуйте операції реляційної алгебри;
3. Що є результатом виконання будь-якої операції реляційної алгебри?
ВАРІАНТИ ЗАВДАНЬ
Варіант 1
Книга(КодКниги, Назва, КодАвтора, рік видання)
Автор(КодАвтора, Прізвище Імя)
Читач(№Абонемента, Прізвище, Імя, По-батькові)
Користування(№З/п, КодКниги, №абонементу, дата_повернення, строк_ повернення)
Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :
1. Перерахувати усіх авторів
2.Відшукати читачів по батькові «Іванович»
3.Відшукати прізвища читачів, за якими числиться книга «Війна і мир» Л. Толстого
4. Відшукати читачів(прізвище, ім'я, по батькові, телефон, адреса), які не узяли жодної книги
5.Отримати список номерів читачів, які в строк не здали книги
6. Отримати інформацію про читачів, за якими числяться книги, видані після 2005года
7.Отримати список книг, які жодного разу не брали читачі
8. Скласти список прізвищ(читачі і автори).
Варіант 2
Картка(КодКартки, КодВласника, КодТипу, термін_дії, сума)
Власник(КодВласник, Прізвище, Імя , По-батькові)
Тип(КодТипу, Тип)
Операції(№ з/п, дата, операція, сума, КодКартки)
Варіант 3
Підрозділ (КодПідрозділу, Назва)
Співробітник(Табельний№, Прізвище, Імя, По-батькові, КодПідрозділу, вік)
Посади(КодПосади, Посада)
Зарплатня(№ з/п, Табельний№, зарплатня, надбавка, дата)
Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :
Варіант 4
Факультет(КодФакультету, Назва, Декан)
Студент(КодСтудента, Прізвище, Імя, По-батькові, Код Групи)
Група(КодГрупи, КодФакультету, НазваГрупи, КодСтарости)
Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :
Варіант 5
Машина(№машини, марка, вантажопідйомність, ремонт)
Водій(№водія, ПІБ, №машини, стаж)
Поїздка(№водія, дата, тип_поїздки, кілометраж)
Примітка
Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :
Варіант 6
Дисципліна(КодДисципліни, Назва, КодВикладача)
Викладач(КодВикладача, Прізвище, Імя, По-батькові, КодДисципліни)
Студент(КодСтудента, ПІБ, группа)
Заняття(№ заняття, дата, КодДисципліни)
Відвідування(№з/п, №заняття, КодСтудента, Присутність)
Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :
1. Визначте дисципліни викладача Іванова
2.Визначте дати пропусків заданого студента
3.Скласти список викладачів, які проводили зайняття заданого числа
4. Скласти список студентів заданої групи
5.Скласти список викладачів, які ведуть дисципліну «Математика».
6. Відшукати групи, в яких проводить зайняття викладач Петров.
7. Скласти список студентів, які не мають пропусків.
8.Знайти однофамільців серед викладачів і студентів.
Варіант 7
Готель(кодГотелю, Назва,адреса)
Номер(№, кількість_кімнат, вартість, кількість_місць, кодГотелю)
Постояльці(КодПостояльця, ПІБ, дата_заїзду, паспортні дані, кількість_діб, №)
Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :
Варіант 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
Постачальник(НомерПостачальник, Назва, місто)
Вироби(НомерВиробу, Назва, місто_вироблення)
Деталь(НомерДеталі, НазваДеталі)
Постачання(№, НомерДеталі, НомерПостачальника, НомерВиробу, кількість)
Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити :
Варіант 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. За допомогою якої фрази SQLможна реалізувати операції вибірка та проекція?
2. За допомогою яких фраз SQLможна реалізувати операції різниця та перетин?
За допомогою яких фраз SQLможна реалізувати операцію декартовий добуток?
ПРАКТИЧНА РОБОТА №3
Тема:Мова SQL. Запити до бази даних
Мета: Закріпити теоретичні та практичні навички розробки запитів для створення та обробки бази даних мовою SQL
План
1. Згідно з заданим варіантом розробити запити з використанням фраз SQLдля:
2. Дати відповіді на контрольні питання;
3. Скласти звіт:
Контрольні питання
ВАРІАНТ 1
довідник постачальників
Постачальник(КодПост, НазвПост, Статус, Місто);
довідник товарів
Товар(КодТовара, НазвТовара, Вага, Колір, Місто);
постачання постачальником цього товару
Постачання(КодПост, КодТовара, Кількість).
ВАРІАНТ 2
довідник постачальників
Постачальник(КодПост, НазвПост, Статус, Місто);
довідник товарів
Товар(КодТовара, НазвТовара, Вага, Колір, Місто);
постачання цим постачальником цього товару
Постачання(КодПост, КодТовара, Кількість).
ВАРІАНТ 3
Пацієнт(КодПациента, ФИОПациента, Категорія, ДатаРожд)
Лікар(КодВрача, ФИОВрача, Спеціалізація, Стаж)
Прийом(КодПациента, КодВрача, ДатаВремя, Кабінет)
1. Витягнути коди і ПІБ пацієнтів категорії «пенсіонер», які в поточному році не відвідували лікаря-терапевта. Рез-т упорядкувати по ПІБ пацієнтів.
2. Отримати прізвища пацієнтів, які були на прийомі у лікаря терапевта 21.01.2008
3. Вичислити середній стаж лікарів стоматологів.
4.Отримати дані про прийом: ПІБ пацієнта, ПІБ лікаря, спеціалізація лікаря, дата прийому, кабінет.
ВАРІАНТ 4
Побудувати SQL- запит для вибірки відомостей з БД, що містить таблиці:
Пацієнт(КодПациента, ФИОПациента, Категорія, ДатаРожд)
Лікар(КодВрача, ФИОВрача, Спеціалізація, Стаж)
Прийом(КодПациента, КодВрача, ДатаВремя, Кабінет)
1. Витягнути коди і ПІБ пацієнтів категорії «студент», які в поточному році відвідували лікаря-хірурга після 15 грудня. Результат упорядкувати по ПІБ пацієнтів.
2. Отримати прізвища пацієнтів, які не були на прийомі у врача-трихолога 22.11.2008
3. Вичислити максимальний стаж лікарів стоматологів.
4.Отримати дані про прийоми 21.11.2009: ПІБ пацієнта, ПІБ лікаря, спеціалізація лікаря, дата прийому, кабінет.
ВАРІАНТ 5
довідник постачальників
Постачальник(КодПост, НазвПост, Статус, Місто);
довідник товарів
Товар(КодТовара, НазвТовара, Вага, Колір, Місто);
постачання цим постачальником цього товару
Постачання(КодПост, КодТовара, Кількість).
ВАРІАНТ 6
Побудувати SQL- запит для вибірки відомостей з БД, що містить таблиці:
довідник постачальників
Постачальник(КодПост, НазвПост, Статус, Місто);
довідник товарів
Товар(КодТовара, НазвТовара, Вага, Колір, Місто);
постачання цим постачальником цього товару
Постачання(КодПост, КодТовара, Кількість).
ВАРІАНТ 7
Побудувати SQL- запит для вибірки відомостей з БД, що містить таблиці:
Пацієнт(КодПациента, ФИОПациента, Категорія, ДатаРожд)
Лікар(КодВрача, ФИОВрача, Спеціалізація, Стаж)
Прийом(КодПациента, КодВрача, ДатаВремя, Кабінет)
1. Витягнути коди і ПІБ пацієнтів категорії «пенсіонер», які в поточному році або не відвідували лікаря-терапевта. Рез-т упорядкувати по ПІБ пацієнтів.
2. Отримати прізвища пацієнтів, які були на прийомі у лікаря терапевта 21.01.2008
3. Вичислити середній стаж лікарів стоматологів.
4.Отримати дані про прийом: ПІБ пацієнта, Фио лікаря, спеціалізація лікаря, дата прийому, кабінет.
ВАРІАНТ 8
Побудувати SQL- запит для вибірки відомостей з БД, що містить таблиці:
Пацієнт(КодПациента, ФИОПациента, Категорія, ДатаРожд)
Лікар(КодВрача, ФИОВрача, Спеціалізація, Стаж)
Прийом(КодПациента, КодВрача, ДатаВремя, Кабінет)
1. Витягнути коди і ПІБ пацієнтів категорії «студент», які в поточному році відвідували лікаря-хірурга після 15 грудня. Результат упорядкувати по ПІБ пацієнтів.
2. Отримати прізвища пацієнтів, які не були на прийомі у лікаря-психолога 22.11.2008
3. Вичислити середній стаж лікарів онкологів.
4.Отримати дані про прийоми 26.02.2007: ПІБ пацієнта, ПІБ лікаря, спеціалізація лікаря, дата прийому, кабінет.
ВАРІАНТ 9
довідник постачальників
Постачальник(КодПост, НазвПост, Статус, Місто);
довідник товарів
Товар(КодТовара, НазвТовара, Вага, Колір, Місто);
постачання цим постачальником цього товару
Постачання(КодПост, КодТовара, Кількість).
ВАРІАНТ 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- діаграми та мови інфологічного моделювання
План
2.Розробити модель «Обєкт/відносини» у вигляді ER-діаграми.
3. Підготувати звіт:
Контрольні питання
ВАРІАНТИ ДЛЯ ВИКОНАННЯ ЗАВДАНЬ
Варіант 1. Облік автомобілів у ДАІ.
Варіант 2. Облік гарантійного обслуговування у фірмі по торгівлі комп'ютерами й оргтехнікою.
Варіант 3. Облік автомобілів на автотранспортному підприємстві.
.Варіант4. Облік автобусів на автотранспортному підприємстві.
Варіант 5. Облік учнів у школі.
Варіант 6. Облік матеріалів на складі.
Варіант 7. Облік хворих у поліклініці.
Варіант 8. Облік хворих у платній лікарні.
Варіант 9. Облік дітей у дитсадку.
Варіант 10. Облік постачальників сировини на підприємство.
Варіант 11. Облік громадян міста.
Варіант 12. Облік руху поїздів на вокзалі.
Варіант 13. Облік товару в магазині.
Варіант 14. Облік оснащення й інструментів на складі цеху машинобудівного підприємства.
Варіант 15. Облік мешканців готелю.
Варіант 16. Облік замовників продукції підприємства.
Варіант 17. Облік прокату човнів на човновій станції.
Варіант 18. Облік аудіокасет в аудіотеці.
Методичні вказівки до виконання практичної роботи №4
База даних - сукупність взаємозв'язаних, що зберігаються разом даних за наявності такої мінімальної надмірності, яка допускає їх використання оптимальним чином для одного або декількох застосувань.
СУБД - це програмна система, що підтримує наповнення і маніпулювання даними, що представляють інтерес для користувачів при вирішенні прикладних завдань. Іншими словами, СУБД є інтерфейсом між базою даних і прикладними завданнями.
Проектування бази даних треба починати з аналізу наочної області і виявлення вимог до неї окремих користувачів.
Виділяють три рівні моделі даних:
Інфологічна модель описує наочну область на змістовному рівні. На першому етапі при її розробці здійснюється аналіз наочної області, вирішуваних завдань, запитів користувачів і документів, що відображають події і процеси, що протікають в ПО. Результатом цього аналізу є списки об'єктів наочної області, переліки їх властивостей або атрибутів, визначення зв'язків між об'єктами і опис структури ПО у вигляді діаграми.
Концептуальна або даталогічна модель описує об'єкти і зв'язки ПО на формальному рівні. Її розробка ведеться на другому етапі і ґрунтується на інфологічній моделі, отриманої на першому етапі. В процесі розробки здійснюється вибір типа моделі даних, і визначаються її елементи.
Внутрішня, або фізична, модель даних визначає спосіб розміщення даних безпосередньо на машинному носієві, враховує розподіл даних, методи доступу і способи індексування. У сучасних прикладних програмних засобах цей рівень організації забезпечується автоматично без втручання користувача.
Першим етапом проектування бази даних будь-якого типу являється аналіз предметної області, що закінчується побудовою 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.Введення картотеки користувачів.
В інформацію про користувачівдоцільновключититакідані:
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. - Приклади множинних зв'язків між сутностями.
Існують і більш складні зв'язки:
У наведених прикладах для підвищення ілюстративності розглянутих зв'язків не показані атрибути сутностей і асоціацій у всіх 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
Завдання
Cпроектувати фізичну модель даних для реляційної бази даних (практична робота № 5)
Хід роботи
1 . Описативсі поля кожного з відносин в термінах Access;
2. Прорахуватиоб'ємпам'яті, займаний одним кортежем даних в кожному з відносин БД;
3. Реалізувати базу даних в СУБД Access;
3.Представитиграфічнезображеннясхеми даних;
4.Вказатитипизв'язку, первинні і зовнішніключі.
5. Написатикоманди на мові SQLдля створення БД, відносин та звязків між ними.
Контрольніпитання
Методичнівказівки до виконаннялабораторноїроботи №1
Під фізичною моделлю даних розуміють опис логічної структури БД в термінах вибраної СУБД.
У цій моделі описуються:
В приведеній нижче таблиці вказані всі типи даних, їх призначення і розміри.
Тип даних |
Використовування |
Розмір |
Текстовий |
Текст або комбінація тексту і чисел, наприклад, адреси, а також числа, що не вимагають обчислень, наприклад, номерителефонів, інвентарніномериабопоштовііндекси. |
До 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 :
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;