Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Проектування та створення бази даних реєстратури в поліклініці засобами MySQL

КурсоваДопомога в написанніДізнатися вартістьмоєї роботи

MySQL має подвійне ліцензування. MYSQL може розповсюджуватися відповідно до умов ліцензії GPL. Але за умовами GPL, якщо якась програма використовує бібліотеки MySQL, то вона теж повинна розповсюджуватися за ліцензією GPL. Проте це може розходитися з планами розробників, не бажаючих відкривати джерельних текстів своїх програм. Для таких випадків передбачена комерційна ліцензія компанії MySQL AB… Читати ще >

Проектування та створення бази даних реєстратури в поліклініці засобами MySQL (реферат, курсова, диплом, контрольна)

Курсова робота

з дисципліни

«Системи управління базами даних»

на тему:

«Проектування та створення бази даних реєстратури в поліклініці засобами MySQL»

Львів 2010

Вступ

база реєстратура поліклініка запит Метою даної курсової роботи є розробка автоматизованої бази даних реєстратури в поліклініці. Така база даних повинна давати можливість вести облік лікарів та пацієнтів, а також зберігати та отримувати якісну структуровану інформацію про них за допомогою виконання певних запитів. База даних повинна бути розроблена в середовищі MySQL.

1. Теоретична частина

1.1 Основні відомості про реляційні бази даних

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

База даних (БД) — спільно використовуваний набір логічно зв’язаних даних (і їх опис), призначений для задоволення інформаційних потреб організації.

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

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

Реляційні бази даних

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

Реляційні БД мають могутній теоретичний фундамент, заснований на математичній теорії відносин. Поява теорії реляційних баз даних дала поштовх до розробки ряду мов запитів, які можна віднести до двох класів:

· мови алгебри, що дозволяють виражати запити засобами спеціалізованих операторів, вживаних до відношень;

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

Отже, числення предикатів є метод визначення того відношення, яке бажано отримати як відповідь на запит з відносин, вже наявних в базі даних.

У реляційній моделі об'єкти реального світу і взаємозв'язки між ними представляються за допомогою сукупності зв’язаних між собою таблиць (відношень).

Кожна таблиця БД представляється як сукупність рядків і стовпців, де рядки (записи) відповідають екземпляру об'єкту, конкретній події або явищу, а стовпці (поля) — атрибутам (ознакам, характеристикам, параметрам) об'єкту, події, явища.

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

Реляційні зв’язки між таблицями баз даних

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

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

Виділяють три різновиди зв’язку між таблицями бази даних:

· «один-до-багатьох»;

· «один-до-одного»;

· «багато-до-багатьох».

Зв’язок «один-до-багатьох»

Зв’язок «один-до-багатьох» має місце, коли одному запису батьківської таблиці може відповідати декілька записів дочірньої. Зв’язок «один-до-багатьох» іноді називають зв’язком «багато-до-одного». І у тому, і в іншому випадку суть зв’язку між таблицями залишається незмінною. Зв’язок «один-до-багатьох» є найпоширенішим для реляційних баз даних. Вона дозволяє моделювати також ієрархічні структури даних.

Зв’язок «один-до-одного»

Зв’язок «один-до-одного» має місце, коли одному запису в батьківській таблиці відповідає один запис в дочерней. Це відношення зустрічається набагато рідше, ніж відношення «один-до-багатьох». Його використовують, якщо не хочуть, щоб таблиця БД «розпухала» від другорядної інформації, проте для читання зв’язаної інформації в декількох таблицях доводиться проводити ряд операцій читання замість однієї, коли дані зберігаються в одній таблиці.

Зв’язок «багато-до-багатьох» застосовується в наступних випадках:

· одному запису в батьківській таблиці відповідає більш за один запис в дочерней;

· одному запису в дочірній таблиці відповідає більш за один запис в батьківській.

Будь-який зв’язок «багато-до-багатьох» в реляційній базі даних необхідно замінити на зв’язок «один-до-багатьох» (одну або більш) за допомогою введення додаткових таблиць.

1.2 Стандарт і реалізація мови SQL

Зростання кількості даних, необхідність їх зберігання і обробки привели до того, що виникла потреба в створенні стандартної мови баз даних, яка могла б функціонувати в численних комп’ютерних системах різних видів. Дійсно, з її допомогою користувачі можуть маніпулювати даними незалежно від того, чи працюють вони на персональному комп’ютері, мережевій робочій станції або універсальній ЕОМ.

Однією з мов, що з’явилися в результаті розробки реляційної моделі даних, є мова SQL (Structured Query Language), яка в даний час набула дуже широкого поширення і фактично перетворилася на стандартну мову реляційних баз даних. Стандарт на мову SQL був випущений Американським національним інститутом стандартів (ANSI) в 1986 р., а в 1987 р. Міжнародна організація стандартів (ISO) прийняла його як міжнародного. Нинішній стандарт SQL відомий під назвою Sql/92.

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

Всі конкретні реалізації мови дещо відрізняються одна від одної. На користь самих же виробників гарантувати, щоб їх реалізація відповідала сучасним стандартам ANSI в частині переносимості і зручності роботи користувачів. Проте кожна реалізація SQL містить удосконалення, що відповідають вимогам того або іншого сервера баз даних. Цими удосконаленнями або розширеннями мови SQL є додаткові команди і опції, що є додаваннями до стандартного пакету і доступні в даній конкретній реалізації.

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

Серед таких СУБД можна виділити MySQL.

1.3 Система управління базами даних MySQL

Структура програмного забезпечення MySQL є багаторівневою з незалежними модулями.

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

MySQL — компактний багатопоточний сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання.

MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних. MySQL вважається гарним рішенням для малих і середніх додатків. Вихідні коди сервера компілюються на безлічі платформ. Найбільш повно можливості сервера виявляються в UNІХ-системах, де є підтримка багатопоточності, що підвищує продуктивність системи в цілому.

Для некомерційного використання MySQL є безкоштовним. Можливості сервера MySQL:

· простота у встановленні та використанні;

· підтримується необмежена кількість користувачів, що одночасно працюють із БД;

· кількість рядків у таблицях може досягати 50 млн.;

· висока швидкість виконання команд;

· наявність простої і ефективної системи безпеки.

Недоліки сервера MySQL:

· не реалізована підтримка транзакцій. Натомість пропонується використовувати LOCK/UNLOCK TABLE;

· відсутня підтримка зовнішніх (foreign) ключів;

· відсутня підтримка тригерів і збережених процедур;

· відсутня підтримка представлень (VIEW).

Зазначені недоліки не є критичними при розробці малих і середніх ІС-інформаційних систем для робочих груп.

MySQL має подвійне ліцензування. MYSQL може розповсюджуватися відповідно до умов ліцензії GPL. Але за умовами GPL, якщо якась програма використовує бібліотеки MySQL, то вона теж повинна розповсюджуватися за ліцензією GPL. Проте це може розходитися з планами розробників, не бажаючих відкривати джерельних текстів своїх програм. Для таких випадків передбачена комерційна ліцензія компанії MySQL AB, яка також забезпечує якісну сервісну підтримку. В разі використання та розповсюдження програмного забезпечення з іншими вільними ліцензіями, такими як BSD, Apache, MIT та інші, MySQL дозволяє використання бібліотек MySQL за ліцензією GPL.

1.4 Основні директиви для роботи в середовищі MySQL

1. Для створення таблиць БД використовується наступна директива:

Синтаксис:

CREATE TABLE

[database name. [owner]. | owner.] table name ( < table constraint >:= [CONSTRAINT constraint name]

| [{"PRIMARY KEY I UNIQUE} [,… n])

:= {column name data type}

[[DEFAULT constant expression]

| [IDENTITY [(seed, increment)]]] [ROWGUIDCOL]

[< column constraint >] […n]

:= [CONSTRAINT constraint name]

[PRIMARY KEY

[CLUSTERED < table constraint >:= [CONSTRAINT constraint name] {[PRIMARY KEY

[CLUSTERED | NONCLUSTERED] {(column [,… n])}

[ON filegroup ]]| FOREIGN KEY

[(column [,… n])] REFERENCES ref table [(ref column [,… n])]

[ON DELETE NO ACTION]

[ON UPDATE NO ACTION] | CHECK (search conditions)}

Аргументи:

table name-ім'я таблиці.

column name — Ім'я поля в таблиці.

column expression — вираз, що використовується для обрахунку значення колонки. Така колонка є віртуальною, тобто фізично не існує в таблиці, а її значення обраховується з використанням значень інших колонок.

data type — тип поля.

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

constant expression — константа, NULL або системна функція.

IDENTITY — вказує на те, що дана колонка буде лічильником, тобто при вставці нового рядка в таблицю, СУБД буде автоматично генерувати значення даного поля. Часто використовується з обмеженням PRIMARY KEY.

Seed-значення, що використовується для першого вставленого в таблицю рядка.

Increment — значення приросту лічильника.

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

CONSTRAINT — вказує на початок оголошення PRIMARY KEY, UNIQUE, або FOREIGN KEY обмеження.

constraint name-визначає ім'я обмеження.

NULL | NOT NULL — директива, що дозволяє/забороняє null значення для даного поля.

PRIMARY KEY-вказує, що дане поле буде первинним ключем в таблиці.

UNIQUE — вказує на те, що в даній колонці будуть зберігатися унікальні значення.

CLUSTERED | NONCLUSTERED — створює кластеризований або неклаттеризований індекс для PRIMARY KEY або UNIQUE обмежень.

FOREIGN KEY… REFERENCES — створює зовнішній ключ на дане поле (поля).

ref table — ім'я таблиці на яку посилається зовнішній ключ.

(ref column [,… п]) — поле (поля), на яке посилається зовнішній ключ.

ON DELETE CASCADE - вказує на те чи при видаленні рядка з таблиці будуть видалятися відповідні рядки з підлеглих таблиць.

ON UPDATE NO ACTION — вказує на те чи при модифікації рядка в таблиці будуть модифікуватися відповідні рядки в підлеглих таблицях.

logical expression — логічний вираз, що повертає TRUE або FALSE.

Column — поле або список полів.

n — допоміжний символ, який означає, що попередній елемент може повторюватись

2. Для зміни структури таблиць використовується наступна директива мови SQL:

Синтаксис:

ALTER TABLE table_name

ADD

< column definition > [,… n]

< column definition >:={column name data type}

[[DEFAULT constant expression] | IDENTITY [(seed, increment)]]

[ROWGUIDCOL] [< column constraint >] […n]]

< column constraint >:=[CONSTRAINT constraint name] NOT NULL]

< table constraint >:=[CONSTRAINT constraint name] {[PRIMARY KEY {(column [,… n])}| FOREIGN KEY [(column [,… n])]

REFERENCES ref_table [(ref_column [,… n])] [ON DELETE CASCADE ] [ON UPDATE NO ACTION]}

Аргументи:

table name — ім'я таблиці.

ALTER COLUMN — вказує на те, що дане поле підлягає зміні.

column name — ім'я поля в таблиці.

data type — тип поля.

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

IDENTITY — вказує на те, що дана колонка буде лічильником, тобто при вставці нового рядка в таблицю, СУБД буде автоматично генерувати значення даного поля. Часто використовується з обмеженням PRIMARY KEY.

Seed — значення, що використовується для першого вставленого в таблицю рядка.

Increment — значення приросту лічильника.

ADD — вказує на те що до таблиці додається колонка або обмеження.

DROP COLUMN column name — вказує на те, що constraint name або column name буде видалятися з таблиці.

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

CONSTRAINT — вказує на початок оголошення PRIMARY KEY, UNIQUE, або FOREIGN KEY обмеження.

CONSTRAINT NAME — визначає ім'я обмеження.

NULL NOT NULL — директива, що дозволяє/забороняє null значення для даного поля.

PRIMARY KEY — вказує, що дане поле буде первинним ключем в таблиці.

UNIQUE — вказує на те, що в даній колонці будуть зберігатися унікальні значення.

FOREIGN KEY… REFERENCES — створює зовнішній ключ на дане поле (поля).

ref table — ім'я таблиці на яку посилається зовнішній ключ.

(ref column [,… п]) — поле (поля), на яке посилається зовнішній ключ.

ON DELETE CASCADE — вказує на те чи при видаленні рядка з таблиці будуть видалятися відповідні рядки з підлеглих таблиць.

ON UPDATE CASCADE — вказує на те чи при модифікації рядка в таблиці будуть модифікуватися відповідні рядки в підлеглих таблицях.

Column — поле або список полів.

n — допоміжний символ, який означає, що попередній елемент може повторюватись.

3. Для внесення значень в таблиці використовується директива INSERT.

Синтаксис:

INSERT [INTO] table name [(column list)] VALUES

( NULL [,… n])

Аргументи:

[INTO] - необов’язкове ключове слово, що ставиться між директивою INSERT та цільовою таблицею.

table nameім'я таблиці, в яку вставляються дані.

(column list) — список з одного або більше полів, в які вставляються дані.

VALUES — представляє набір значень, які будуть вставлятися в таблицю.

DEFAULT-вставка значення по замовчуванню у вказане поле.

NULL-вставка значення NULL у вказане поле.

Expression-константа, змінна або інший вираз.

Derived table-довільна SELECT директива, яка повертає набір рядків, що будуть вставлятися в дану таблицю.

4. Для внесення змін в записи таблиці використовується директива UPDATE.

Синтаксис:

UPDATE table name SET {column name = NULL} [,… n] [WHERE < search_condition >]

Аргументи:

table name-ім'я таблиці, в якій будуть проводитися зміни.

SET-Список полів або змінних, значення яких будуть змінюватись.

column name — поле, що містить дані, які підлягають зміні.

Expression-змінна, константа або і нший вираз.

DEFAULT-вставка значення по замовчуванню у вказане поле.

WHERE-вказує умову, яка обмежує набір рядків, що підлягають зміні.

< search condition >-тіло умови, яка обмежує набір рядків, що підлягають зміні.

5. Для видалення записів з таблиці використовується директива DELETE.

Синтаксис:

DELETE[FROM] table name [WHERE < search condition >]

Аргументи:

FROM-необов'язкове ключове слово, що ставиться між директивою DELETE та ім'ям цільової таблиці.

table name-ім'я таблиці, з якої видаляються записи.

WHERE-вказує умову, яка обмежує набір рядків, що підлягають видаленню.

— тіло умови, яка обмежує набір рядків, що підлягають видаленню.

6. Для вибору записів з таблиць використовується директива SELECT.

Синтаксис:

SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]] [Alias.] Select_Item

[[AS] Column_Name] [, [Alias.] Select_Item [[AS] Column_Name]…] FROM [FORCE] [DatabaseNameI] Table [[AS] Local_Alias] [[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN

DatabaseNamel] Table [[AS] Local_Alias] [ON JoinCondition…]

[[INTO Destination] | [TO FILE FileName [ADDITIVE] | TO PRINTER

[PROMPT] | TO SCREEN]] [WHERE JoinCondition [AND JoinCondition…]

[AND | OR FilterCondition [AND | OR FilterCondition…]]] [GROUP BY GroupColumn [, GroupColumn…]] [HAVING FilterCondition] [UNION [ALL] SELECTCommand] [ORDER BY Order Item [ASC | DESC] [, Order Item [ASC | DESC]…]]

Параметри:

SELECT — вказує поля, константи та вирази, що будуть відображатися у результатах запиту.

ALL — по замовчуванню повертає всі рядочки в результати запиту. DISTINCT Виключає з результатів запиту рядочки, що повторюються.

TOP nExpr [PERCENT] - вказує кількість рядочків (або кількість у відсотках) у результатах запиту.

Alias. — уточнює імена елементів. Кожен елемент, який ви вказуєте в Select_Item генерує одну колонку результатів запиту. Якщо два або більше елементів мають однакові імена, використовуйте alias та крапку перед іменами елементів, щоб забезпечити коректність результатів.

Select Item — вказує елемент, який буде включатися в результати вибору. Такими елементами можуть бути: ім'я поля, константа або вираз.

AS Column Name — вказує ім'я, під яким буде відображатися даний елемент у результатах запиту.

FROM — вказує список таблиць, з яких буде відбуватися вибірка. DatabaseName! Вказує ім'я не поточної бази даних, з таблиць якої буде проводитись вибірка.

[AS] Local Alias — вказує тимчасове ім'я для таблиці Table.

INNER JOIN — вказує на те, що результати вибору будуть містити тільки ті рядочки, які задовольняють умову вибору для одного або більше рядочків з іншої таблиці.

LEFT [OUTER] JOIN — вказує на те, що результати вибору будуть містити всі рядки з таблиці, яка стоїть зліва від слова JOIN і тільки підходящі рядочки з таблиці справа (такі, що задовільняють вказану умову).

RIGHT [OUTER] JOIN — вказує на те, що результати вибору будуть містити всі рядки з таблиці, яка стоїть справа від слова JOIN і тільки підходящі рядочки з таблиці зліва (такі, що задовільняють вказану умову).

FULL [OUTER] JOIN — вказує на те, що результати вибору будуть містити всі рядки з обох таблиць.

ON JoinCondition — вказує умову об'єднання таблиць.

INTO Destination Вказує місце (об'єкт) де будуть зберігатися результати запиту.

TO FILE FileName — вивід результатів у файл.

ADDITIVE — доповнює вже існуючий файл результатами запиту.

TO PRINTER [PROMPT] - вивід результатів на принтер. Ключове слово PROMPT використовується для виводу підтвердження перед друком.

TO SCREEN — вивід результатів у головне вікно редактора запитів.

WHERE — вказує умови вибору записів.

7. Для вибору записів зі з'єднаних таблиць використовується директива SELECT разом із директивами JOIN.

Синтаксис:

SELECT Select_Item…FROM Table [[AS] Local_Alias]

[[[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN Table [[AS] Local_Alias] [ON JoinCondition…] [WHERE JoinCondition [AND JoinCondition…]] | [CROSS JOIN Table [[AS] Local_Alias]]

Параметри:

SELECT — вказує поля, константи та вирази, що будуть відображатися у результатах запиту.

Select Item — вказує елемент, який буде включатися в результати вибору. Такими елементами можуть бути: ім'я поля, константа або вираз.

[AS] Local Alias — вказує тимчасове ім'я для таблиці Tabl е.

INNER JOIN — вказує на те, що результати вибору будуть містити тільки ті рядочки, які задовольняють умову вибору для одного або більше рядочків з іншої таблиці.

LEFT [OUTER] JOIN — вказує на те, що результати вибору будуть містити всі рядки з таблиці, яка стоїть зліва від слова JOIN і тільки підходящі рядочки з таблиці справа (такі, що задовільняють вказану умову).

RIGHT [OUTER] JOIN — вказує на те, що результати вибору будуть містити всі рядки з таблиці, яка стоїть справа від слова JOIN і тільки підходящі рядочки з таблиці зліва (такі, що задовільняють вказану умову).

FULL [OUTER] JOIN — вказує на те, що результати вибору будуть містити всі рядки з обох таблиць.

CROSS JOIN — проводить Декартовий добуток таблиць. Кількість рядочків в результаті дорівнює кількості рядочків першої таблиці помноженої на кількість рядочків другої таблиці.

ON JoinCondition — вказує умову об'єднання таблиць (або умову вибору записів).

WHERE — вказує умови вибору записів.

2. Практична частина

2.1 Визначення та опис предметної області

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

Предметною областю бази даних є реєстратура поліклініки (Rejestratyra). В базі даних будуть міститися наступні таблиці:

ь Likar (для зберігання інформації про дільничного лікаря);

ь Pacijent (для зберігання інформації про пацієнтів поліклініки);

ь Prujom (для зберігання інформації про прийом пацієнтів дільничним лікарем).

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

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

Таким чином, необхідно реалізувати введення, зберігання і зміну інформації в базі даних.

2.2 Проектування реляційної моделі даних

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

Мал. 1. Реляційна модель бази даних

2.3 Проект бази даних

Таблиця Likar

Назва поля

Тип поля

Опис поля

Code

INT

Індивідуальний номер лікаря

Surname

CHAR

Прізвище лікаря

Name

CHAR

Ім'я лікаря

Adress

CHAR

Адреса проживання

Spec

CHAR

Cпеціальність лікаря

Telephone

INT

Контактний номер телефону

Terutorija

CHAR

Закріплена за лікарем територія

Таблиця Pacijent

Назва поля

Тип поля

Опис поля

CodePacijent

INT

Індивідуальний номер пацієнта

Surname

CHAR

Прізвище пацієнта

Name

CHAR

Ім'я пацієнта

Adress

CHAR

Адреса проживання

Telephone

INT

Контактний номер телефону

Zahvorjuvannja

CHAR

Хвороби пацієнта

Таблиця Prujom

Назва поля

Тип поля

Опис поля

Nomer

INT

Номер прийому

Code

INT

Індивідуальний номер лікаря

CodePacijent

INT

Індивідуальний номер пацієнта

DatePrujom

DATE

Дата прийому

Pruchuna

CHAR

Причина візиту до лікаря

Diagnos

CHAR

Поставлений діагноз

3. Створення бази даних засобами MySQL

3.1 Створення таблиць бази даних

1. Для сворення таблиці Likar використовуємо наступні директиви SQL:

CREATE TABLE Likar (Code int (20), Surname char (20), Name char (20), Adress char (20), Spec char (20), Telephone int (20), Terutorija char (20), PRIMARY KEY (Code))

insert into Likar (code, sername, name, adress, tel, terutorija, spec) values (2, 'Gyk', 'Alina Viktorivna', 'vyl. Franka', 34 540, 'vyl. Lenina', 'terapevt')

insert into Likar values (22,'Perekopna', 'Albina Igorivna', 'vyl. Lupu', 30 940, 'vyl. Franka', 'terapevt');

insert into Likar values (23, 'Biloys', 'Petro Olegovuch', 'vyl. Lupu', 30 340, 'vyl. Gazova', 'lor');

insert into Likar values (10,'Brunza', 'Anastasija Pulupivna', 'vyl. Lvivska', 39 870, 'vyl. Grunchyka', 'ginikolog');

insert into Likar values (15,'Bytka', 'Vasulij Borosuvoch', 'vyl. Sumonenka', 39 090, 'vyl.6 sichnja', 'yrolog');

insert into Likar values (17,'Gyc', 'Anastacija Ivanivna', 'vyl. Lupu', 56 785, 'vyl. Smal-Stockogo', 'terapevt')

В результаті отримаємо заповнену таблицю бази даних (Мал. 2).

2. Для створення таблиці Pacijent використовуємо наступні директиви SQL:

CREATE TABLE Pacijent (CodePacijent int (20), Surname char (20), Name char (20), Adress char (20), Telephone int (20), Zahvorjuvannja char (20), PRIMARY KEY (CodePacijent))

insert into Pacijent values (2,'Momruk', 'Marjana Ivanivna', 'vyl. Franka', 45 789, 'insylt');

insert into Pacijent values (9,'Chupka', 'Vasulij Viktorovuch', 'vyl. Gazova', 44 589, 'katarakta');

insert into Pacijent values (10,'Cupak', 'Ivan Viktorovuch', 'vyl.YPA', 45 765, 'serceva nedostatnist');

Мал. 2. Таблиця Likar

В результаті отримаємо заповнену таблицю бази даних (Мал. 3).

Мал. 3. Таблиця Pacijent

3. Для створення таблиці Prujom використовуємо наступні директиви SQL:

CREATE TABLE Prujom (Nomer int (20), Code int (20), CodePacijent int (20), DatePrujom date (20), Pruchuna char (100), Diagnos char (20), PRIMARY KEY (Nomer))

insert into Prujom values (9,34,9,2.10,'ckargu na poganuj zir', 'katarakta');

insert into Prujom values (1,23,1,16.12,'ckargu na bil v gorli', 'angina');

insert into Prujom values (12,22,2,4.10,'neryhomi chastunu tila', 'insylt');

insert into Prujom values (11,3,10,10.12,'bil y boci', 'serceva nedostatnist')

В результаті отримаємо заповнену таблицю бази даних (Мал. 4)

Мал. 4. Таблиця Prujom

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

1. Запит на додавання поля до таблиці. Додамо до таблиці Pacijent поле krov, в якому будуть міститися значення про групу крові пацієнтів і отримаємо таблицю, що буде містити нове поле (Мал. 5). Директива такого створення буде:

ALTER TABLE Pacijent ADD krov varchar (20) NULL

Мал. 5. Додавання поля до таблиці

2. Додавання обмежень. Створюємо зв’язок між таблицями Likar і Prujom:

ALTER TABLE Likar ADD constraint fk1 foreign key (code) references Prujom (code)

Створюємо зв’язок між таблицями Pacijent і Prujom:

ALTER TABLE Pacijent ADD constraint fk2 foreign key (code Pacijent) references Prujom (code Pacijent)

3. Запит для вилучення записів з таблиці із застосуванням параметрів у критеріях запиту. Вилучимо дані про пацієнта код якого дорівнює 12 (Мал. 6). Директива:

DELETE FROM Pacijent WHERE codePacijent=12;

Мал. 6. Вилучення записів із таблиці

На основі уже створеної таблиці Likar створюємо таблицю LikarNew (Мал. 7).

Мал. 7. Таблиця LikarNew

4. Об'єднання таблиць. Об'єднуємо таблиці Likar і LikarNew (Мал.8.). Запит для виконання об'єднання:

Select * from Likar Union Select * from LikarNew

Мал. 8. Об'єднання таблиць

5. Виконуємо перетин двох таблиць (Мал.9.). Запит для виконання перетину:

Select *From Likar Where code in (select code from LikarNew);

Мал. 9. Перетин двох таблиць

6. Запит для виконання різниці (Мал.10.):

Select code from Likar where code not in (select code from LikarNew);

Мал. 10. Різниця таблиць

7. Запит для виконання декартового добутку (Мал.11.):

Select * from Likar, LikarNew;

Мал. 11. Декартовий добуток

9. Запит для виконання проекції (Мал.12.):

Select name from Likar

Мал. 12. Проекція таблиці Likar

10. Запит для виконання селекції (Мал. 13.):

Select name From Likar Where code >6;

Мал. 13. Селекція таблиці Likar

11. Запит для виконання натурального з'єднання:

Select *From Likar, LikarNew Where Likar. code = LikarNew. code;

Мал. 14. Результат натурального з'єднання

12. Запит для виконання умовного з'єднання:

Select *From Likar, LikarNew Where Likar. code > LikarNew. code;

Мал. 15. Результат умовного з'єднання

13. Запит на вибірку з використанням критерію (Мал. 16):

SELECT code, sername, name, spec FROM Likar where code>3

14. Запит вибору записів зі з'єднаних таблиць із застосуванням внутрішнього з'єднання:

SELECT * FROM Likar S1 inner join Likarnew S2 on S1. code=S2.code

15. Запит вибору записів із з'єднаних таблиць із застосуванням лівого зовнішнього з'єднання:

SELECT * FROM Likar S1 left join Likarnew S2 on S1. code=S2.code

16. Запит вибору записів зі з'єднаних таблиць із застосуванням правого зовнішнього з'єднання:

SELECT * FROM Likar S1 right join Likarnew S2 on S1. code=S2.code

17. Запит вибору записів зі з'єднаних таблиць із застосуванням перехресного з'єднання:

SELECT * FROM Likar cross join Likarnew

Висновки

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

В ході виконання курсової роботи я отримала навики роботи з даними за допомогою запитів та організації сортування і пошуку даних різних типів.

В результаті мною розроблена і спроектована база даних реєстратури поліклініки, що містить необхідні дані про лікарів та пацієнтів. База даних розроблена в системі розробки баз даних MySQL, що дозволяє легко зрозуміти її організацію і простоту управління. Отримати необхідну інформацію з бази даних можна, використовуючи SQL — запити.

Використані джерела

1. Карпова Т. С. Базы данных: модели, разработка, реализация. — СПб.: Питер, 2002.

2. Бази даних. Підручник для вузів Автор: А. Д. Хомоненко, В. М. Циганков, М. Г. Мальцев Видавництво: Корона-принт ISBN: 5−7931−0284−1 Рік: 2004

3. Основы реляционных баз данных / Пер, с англ. — М.: Издательско-торговый дом? Русская Редакция?, 2001. — 384 с.

4. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание.: Пер. с англ. — М.: Издательский дом «Вильяме», 2003. — 1440 с.

5.

Введение

в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильяме», 2005. — 1328 с.

Показати весь текст
Заповнити форму поточною роботою