Організація баз даних

Установка MYSQL під WIN9X/NT/2000. Вивчення загальної характеристики мови SQL. Операції над схемою бази даних. Призначення пароля користувачеві root. Створення профілю для під’єднання до сервера. Вигляд головного вікна MySQL-Front. Режим перегляду даних.

Рубрика Программирование, компьютеры и кибернетика
Вид методичка
Язык украинский
Дата добавления 19.07.2017
Размер файла 571,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Міністерство освіти і науки України

Луцький національний технічний університет

Редакційно-видавничий відділ

Луцького національного технічного університету

Методичні вказівки до виконання контрольних робіт

для студентів спеціальності КСМ

заочної форм навчання

Організація баз даних

Луцьк 2010

УДК 681.3.06

Організація баз даних. Методичні вказівки до виконання контрольних робіт для студентів спеціальності „Комп'ютерні системи та мережі” заочної форми навчання /А.Ю. Коцюба, С.В. Лавренчук. -Луцьк: ЛНТУ, 2010. - 48 с.

Укладачі: А.Ю. Коцюба, С.В. Лавренчук.

Рецензент: Н.В. Багнюк

Відповідальний за випуск: П.А. Пех

Затверджено науково-методичною радою ЛНТУ

протокол №_____ від ______2010р.

Рекомендовано до друку методичною комісією навчально-науково-виробничого інституту інженерних та інформаційних технологій ЛНТУ, протокол №____ від _______2010 р.

Затверджено на засіданні кафедри комп'ютерної інженерії,

протокол №__ від _______________ 2010 р.

Зміст

пароль сервер користувач

Вступ

1. Теоретичні відомості

1.1 Установка MYSQL під Win9x/NT/2000

1.2 Знайомство з mysql-front

1.3 Загальна характеристика мови SQL

1.3.1 Команда SELECT

1.3.2 Конструкція GROUP BY

1.3.3 Конструкція HAVING

1.3.4 Форматування

1.3.5 Оператор LIKE

1.3.6 Агрегатні функції

1.4 Операції над схемою бази даних

1.4.1 Стовпці та типи даних

1.4.2 Основні операції

1.4.3 Типи таблиць

2. Завдання на контрольну роботу

2.1 Групові завдання

2.2 Індивідуальні завдання

3. Приклад виконання завдання

3.1 Постановка задачі

Перелік рекомендованих джерел

Вступ

Метою виконання контрольної роботи є закріплення теоретичних знань та практичних навичок, набутих під час вивчення дисципліни «Організація баз даних», застосування їх при вирішенні питань виробничого характеру.

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

Необхідне програмне забезпечення: виділений сервер MySql, MySQL-Front або їх альтернативи.

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

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

1. Теоретичні відомості

1.1 Установка MYSQL під Win9x/NT/2000

Навіщо взагалі потрібні бази даних?

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

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

Є безліч різних видів баз даних, але в нашому випадку ми будимо розглядати MYSQL.

Чому саме MYSQL?

Тому що вона є невеликим, компактним і простим у використанні сервером баз даних, ідеальним для додатків малого і середнього розміру. Варто відзначити і той факт, що MYSQL доступна на ряду платформ Unix, Windows NT/2000, 95/98. Крім того, відзначимо, що більшості інтернет-додатків, які можна викачати на різних безкоштовних скриптовых серверах, необхідна саме MYSQL. Наприклад, мені так і не вдалося знайти повнофункціональний форум, який би не використав базу даних.

Установка MYSQL

Поставимо MYSQL в папку за умовчанням, тобто c:\mysql. Це дозволить нам надалі відразу почати роботу, без яких-небудь додаткових настройок.

Після установки ми зможемо спостерігати приблизно наступну ієрархію папок:

C:\mysql -- коренева директорія.

|_bench -- контрольні виміри і тест “crash-me”.

|_bin -- клієнтські програми і сценарії.

|_data -- саме тут знаходитимуться самі бази даних.

|_docs -- різна інформація: копірайти, ліцензії, короткий мануал і т.д.

|_examples -- декілька прикладів використання бази (див. мануал).

|_include -- файли заголовків.

|_lib -- різні бібліопапоки.

|_scripts -- декілька Perl-скриптів.

|_share -- файли повідомлень про помилки.

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

Зазвичай в додатках, що використовують MYSQL, присутні три стандартні змінні, які відповідають за доступ до самої бази даних:

$userName = "root"; - ім'я користувача, якому дозволений доступ до бази.

$password = ""; пароль, за умовчанням він відсутній.

$hostName = "localhost"; ім'я хоста, на якому розміщена база даних.

Запуск MYSQL сервера

Запуск з командного рядка

Для цього в Win 95/98 запускаємо “Сеанс MS-DOS” і прописуємо декілька команд, орієнтуючись на те, що ви встановили MYSQL на C:\mysql:

cd mysql\bin

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

Вхід в режимі адміністрування здійснюється трохи інакше:

cd mysql\bin --u root(ім'я користувача) mysql

Після цього повинен з'явитися наступний текст:

Welcome to the MYSQL monitor.Commands end with; or \g.

Your MYSQL connection id is 1 to server version: 3.23.19

Type 'help' for help.

mysql>

Тепер ви можете призначити користувачеві root пароль (якщо хочете, звичайно), для цього в тому ж командному рядку пишемо:

mysql> UPDATE user SET Password=PASSWORD('новый_пароль) WHERE user='root';

mysql>quit

mysql\bin>mysqladmin -u root reload

Після цього ми завершуємо роботу сервера командою quit і перезавантажуємо його reload

Тепер спробуємо увійти знову:

mysql\bin\mysql -u root -p mysql

Enter password: ********(пароль)

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

<HTML>

<HEAD>

<TITLE> Список баз даних на сервере</TITLE>

</HEAD>

<BODY>

<? $userName = "root"; //використовується за замовчуванням

$password = "new_password"; //якщо пароль не заданий, то має значення порожнього рядка

$hostName = "localhost"; //хост, на якому знаходиться база MYSQL

//З'єднання з базою даних MYSQL

if (!($link = mysql_connect($hostName, $userName, $password)))

{

printf("<BR> Відбулася помилка при з'єднанні з базою даних %s <BR>\n", $hostName);

exit();

}

// Отримання списку баз даних, що знаходяться на сервері

if (!($listOfDbs = mysql_list_dbs($link)))

{

printf("<BR> Помилка в mysql_list_dbs, помилка %s <BR>\n", mysql_error($link));

exit();

}

printf("<b> Бази даних на %s </b> <br> <br>\n", $hostName);

// Одержати список баз даних

$noOfDbs = 0;

while ($noOfDbs < mysql_num_rows($listOfDbs))

{

printf(" %s <BR>\n", mysql_tablename($listOfDbs, $noOfDbs));

$noOfDbs++;

}

// Звільнити покажчик результату

mysql_free_result($listOfDbs);?>

</BODY>

</HTML>

Зберігаємо все це, запускаємо (якщо у вас ще не запущений) MYSQL сервер, Apache сервер і викликаємо цей файл http://localhost/check_mysql.php.

В результаті його виконання ми одержимо список баз даних, що знаходяться на сервері. За умовчанням їх всього дві: test і Mysql. Якщо при виклику відбудеться помилка, то можливі наступні причини:

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

Можливо, не запущений сам MYSQL сервер. Запустіть сервер.

Можливо, ви допустили помилку при введенні самого коду.

Повернемося до варіантів запуску сервера.

Запуск за допомогою файлу

Є можливість одночасного запуску як сервера MYSQL, так і сервера Apache. Для цього нам потрібно буде створити файл, наприклад, start.bat, у який запишемо такі рядки:

-- @echo off

-- "C: \mysql\bin\mysqld"

start /m "C:\web \Apache" (у мене Apache знаходиться тут, у вас може бути інакше)

У тій же папці створюємо файл shutdown.bat, який завершуватиме роботу Apache і MYSQL:

-- @echo off

-- "C:\web\Apache" -k shutdown

"C:\ mysql\bin\mysqladmin" -u root shutdown

Досить зручно призначити цим файлам “гарячі клавіші”, для швидкого виклику. Наприклад, CTRL+S і CTRL+D відповідно (Start/shutdown). Але не під всіма операційними системами це спрацьовує.

Запуск за допомогою winmysqladmin

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

1.2 Знайомство з mysql-front

MySQL-Front є типовою windows-програмою. Запустити її можна з Головного меню . При першому запуску програми потрібно створити профіль (сесію) для під'єднання до сервера (рис. 1).

Рис. 1. Створення профілю для під'єднання до сервера

На закладці „Главное/General” ввести назву профілю (будь-яка стрічка, наприклад, Ваше прізвище або ініціали), на закладці „Подключение/Connection” - параметри MySql-сервера, до якого ми хочемо під'єднатись, а саме ім'я або ІР-адресу комп'ютера (поле Server), на якому розміщений MySql-сервер. Наприклад, у нашому випадку, коли використовується локальна машина і віртуальний диск з сервером, ІР-адрес - 127.0.0.1.

На закладці „Пользователь/Login” ввести ім'я користувача і пароль (такі ж, як при встановленні сервера). Також можна встановити опцію „Save Password”, щоб програма при наступних під'єднаннях не перепитувала пароль.

Після введення імені користувача та пароля натискаємо на кнопку „ОК”. З'явиться вікно вибору профілю, вибираємо щойно створений профіль і натискаємо кнопку „ОК”.

Якщо всі параметри задано правильно, то програма повинна успішно з'єднатися з сервером і показати вікно, розділене на дві частини, зі списком баз даних сервера (рис. 2).

Рис. 2. Вигляд головного вікна MySQL-Front

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

MySQL-Front підтримує багатомовний інтерфейс, у тому числі й українськомовний. Мову інтерфейсу можна змінити в головному меню програми: .

Список баз даних представлений у вигляді дерева (рис. 3). При розкритті вітки зі значком бази, з'явиться список таблиць. що містяться у цій базі даних.

Рис. 3. Список баз даних в MySQL-Front

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

Права частина вікна може мати три режими роботи:

Перегляд структури (також є можливість редагування).

Перегляд записів таблиці (також є можливість редагування).

Виконання SQL-запитів.

Режими роботи перемикаються кнопками над вікном (рис. 4). У режимі перегляду даних записи можна редагувати, зробивши подвійний клік на клітинці. При перегляді структури поля також можна редагувати, два рази клацнувши на них або в контекстному меню вибрати „Властивості”.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 4. Основні елементи вікна програми MySQL-Front

Щоб створити нову таблицю, зручно використовувати контекстне меню бази даних, до якої ви хочете додати таблицю. В меню слід вибрати . При створенні таблиці необхідно задати ім'я (рис. 5).

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 5. Створення нової таблиці

Поля нової таблиці можна вказати на закладці Fields (рис. 6).

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 6. Поля нової таблиці БД

1.3 Загальна характеристика мови SQL

Мова SQL використовується в багатьох відомих СУБД і серверах баз даних, таких як Oracle, SQL Server, SQLBase, Ingres, Sysbase, OS/2 Extended Edition, Informix, dBase IV, FoxPro і т. ін. Цю мову було розроблено фірмою IBM, щоб надати користувачам розвинені засоби формулювання запитів і відображення результатів їх виконання. Хоча мова й стандартизована, але багато розробників програмних продуктів розширюють її власними елементами.

Назва «SQL» є абревіатурою від Structured Query Language (структурована мова запитів). Раніше використовувалася й інша назва -- SEQUEL (як вимова «S.Q.L»).

Це непроцедурна мова, що реалізує основні функції реляційних СУБД:

визначення даних (SQL дозволяє визначати структуру таблиць бази даних і відношення між ними);

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

маніпулювання даними (SQL дозволяє користувачеві або прикладній програмі змінювати вміст бази даних);

управління доступом (SQL забезпечує синхронізацію обробки даних бази);

розподіл даних (SQL координує роботу конкуруючих користувачів і забезпечує тим самим їхню одночасну роботу з базами даних);

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

Команди SQL, які застосовуються для виконання зазначених функцій, поділяють на такі групи:

команди визначення даних (Data Definition Commands);

команди маніпулювання даними (Data Manipulation Commands);

команди вибору даних -- утворення вибірки (Data Query Commands);

команди управління транзакціями (Transaction Control Commands);

команди управління даними (Data Control Commands).

Команди визначення даних дозволяють визначати структуру даних і організацію використовуваних реляційних відношень. До цих команд належать:

Команда

Призначення

ALTER TABLE

Змінює структуру таблиці

CREATE TABLE

Створює індекс

CREATE INDEX

Створює таблицю

CREATE VIEW

Створює уявлення (в'ювер)

DROP

Вилучає таблицю, індекс, уявлення

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

Команда

Призначення

DELET

Вилучає записи з таблиці

INSERT

Додає записи до таблиці

UPDATE

Змінює дані таблиці

Вибір різноманітної інформації з бази даних (утворення вибірки) досягається застосуванням лише однієї команди SELECT.

До команд управління транзакціями, які дозволяють запобігти порушенню цілосності бази даних, належать команди:

Команда

Призначення

COMMIT

Робить зміни, виконані з початку транзакції, постійними

ROLLBACK

Відкочує всі проведені зміни до точки зберігання або до початку транзакції

SAVEPOINT

Установлює контрольну точку, до якої згодом можна буде виконати відкочування

Основна функція команд управління даними -- надання користувачам відповідного права доступу до даних. Це такі команди:

Команда

Призначення

GRANT

Надає привілеї користувачам для роботи з даними

REVOKE

Знімає раніше надані привілеї

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

1.3.1 Команда SELECT

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

У найпростішій формі команда SELECT інструктує базу даних про те, як витягти інформацію з таблиці. Наприклад, для виведення таблиці телефонів Phone слід вказати:

SELECT Abonent, Street, House, Flat, Phone

FROM Phone

Результат виконання цієї команди буде приблизно таким:

Abonent

Street

House

Flat

Phone

ЛНТУ

Львівська

75

000

746101

Гуртожиток ЛНТУ

Даньшина

8

000

60915

Іванов А.Г.

Кравчука

10

015

61115

...

...

...

...

...

Тобто, ця команда виведе всі дані з таблиці.

Розглянемо кожну частину цієї команди докладніше:

SELECT

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

Abonent, Street, House, Flat, Phone

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

FROM Phone

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

;

Крапка з комою використовується у всіх інтерактивних командах SQL, як символ закінчення команди. У деяких системах похила риска вліво (\) у рядку є індикатором кінця команди.

Використання розриву рядка (клавіша ENTER) є довільним. З тих пір, як SQL використовує крапку з комою, щоб вказувати на кінець команди, більшість програм SQL опрацьовують розрив рядка (клавіша ENTER) як пробіл. Тому користувач вибирає самостійно як йому зручніше скласти запит, у кілька рядків чи в один. Проте, краще використовувати розриви рядків, пробіли й табуляцію для вирівнювання, щоб зробити команди легшими для читання.

Якщо потрібно вивести вміст всієї таблиці, то можна використовувати наступну команду:

SELECT * FROM Phone

Це призведе до того ж результату, що й попередня команда.

Повний вигляд цієї команди:

SELECT [DISTINCT | ALL]

<список елементів таблиці запиту | *>

FROM <список вхідних таблиць>

[WHERE <умова вибору>]

[GROUP BY <список імен стовпців таблиці запиту>]

[HAVING <умова включення груп до таблиці запиту>]

[ORDER BY <умова впорядкування записів таблиці запиту>]

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

Список елементів таблиці запиту визначає, які колонки повинна мати вихідна таблиця запиту. Символ * означає, що вихідна таблиця повинна включати в себе всі колонки (поля) усіх таблиць бази, на основі яких будується запит. Якщо кілька таблиць бази мають однойменні колонки, то для ідентифікації потрібної колонки необхідно вказати її повне ім'я, яке складається з імені таблиці (чи її псевдоніму) та імені колонки, відокремлених одне від одного символом «крапка». Полем вихідної таблиці запиту може бути:

поле будь-якої таблиці бази, вказане у фразі FROM;

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

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

Імені колонки вихідної таблиці запиту може бути надане інше ім'я.

Фраза FROM визначає список таблиць бази даних, на основі яких будується запит. Імена таблиць мають відокремлюватися одне від одного комою. Для кожної таблиці можна вказати ім'я її локального псевдоніму, який у цьому запиті можна використовувати замість імені відповідної таблиці.

Фраза WHERE дозволяє вказувати умови, що їх мають задовольняти значення полів у рядках вихідної таблиці запиту, виконуючи таким чином роль фільтра для добору даних із таблиць бази.

1.3.2 Конструкція GROUP BY

Фраза GROUP BY призначена для групування рядків. Тобто рядки, які належать одній групі, у вихідній таблиці запиту будуть подані одним рядком. У цьому разі використання стандартних функцій для формування поля вихідної таблиці дозволяє визначити параметри груп (такі як кількість рядків у групі, сумарне або середнє значення за вказаним полем у групі, мінімальне або максимальне значення поля у групі). Імена стовпців (поля) вихідної таблиці запиту, що вказуються в цій фразі, записуються через кому. Рядки з однаковими значеннями в цих полях належать до однієї групи. Стандарт мови дозволяє задавати поля групування не лише за іменами, а й числовим виразом, який вказує на положення (порядковий номер) відповідного стовпця у вихідній таблиці запиту.

Конструкція GROUP BY дозволяє визначати підмножину значень і застосовувати агрегатну функцію до цієї підмножини. Це дає можливість поєднувати поля й агрегатні функції в єдиній конструкції SELECT.

Наприклад, потрібно визначити з таблиці film_list скільки фільмів вийшло кожного року. Для цього можна, звичайно, виконати окремий запит для кожного року, вибравши COUNT (Name) з таблиці. Проте GROUP BY дозволяє помістити все в один запит:

SELECT Year, COUNT(Name)

FROM film_list

GROUP BY Year

Результат виконання даного запиту матиме вигляд:

Year

COUNT(Name)

0

5

1996

2

...

...

Можна використовувати конструкцію GROUP BY одразу з кількома полями. Припустимо, потрібно дізнатися для кожної країни, скільки фільмів вона випускала щороку.

SELECT Country, Year, COUNT(Name) FROM film_list

GROUP BY Country, Year

Звичайно порожні групи (роки, коли певна країна не випустила жодного фільму) не будуть показані в результаті.

1.3.3 Конструкція HAVING

Припустимо, з таблиці фільмів потрібно вибрати тільки ті роки, в які було випущено більше 50-ти фільмів. Не можна використати WHERE, наприклад, так:

SELECT Year, COUNT(Name) FROM film_list

WHERE C0UNT(Name)>50

GROUP BY Year

Це буде суперечити строгій інтерпретації ANSI. Щоб побачити список усіх років, кількість фільмів в яких перевищує 50, слід використати конструкцію HAVING. Конструкція HAVING визначає критерії, що використовуються для видалення певних груп з виведення, так само, як конструкція WHERE робить це для окремих рядків. Правильний розв'язок:

SELECT Year, COUNT(Name) FROM film_list

GROUP BY Year

HAVING C0UNT(Name)>50

Результат виконання запиту:

Year

COUNT(Name)

1997

57

1999

62

...

...

Фраза HAVING дозволяє дібрати з множини груп лише ті, які відповідають вказаним умовам. HAVING застосовується для фільтрації груп, як WHERE застосовується для фільтрації запитів, і звичайно використовується разом з GROUP BY.

1.3.4 Форматування

Таблиці -- це невпорядковані набори даних, і дані, які містяться в них, не обов'язково з'являються в якійсь певній послідовності. SQL використовує команду ORDER BY, щоб впорядковувати результат виконання запиту. Ця команда впорядковує виведення запиту відповідно до значень у тій або іншій кількості обраних стовпців. Кілька стовпців впорядковуються один усередині іншого. Можна визначати зростаючий (ASC) або спадний (DESC) порядок для кожного стовпця. За замовчуванням встановлено -- зростаючий.

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

SELECT * FROM film_list

ORDER BY Country ASC, Year Desc

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

1.3.6 Оператор LIKE

LIKE застосовують тільки до текстових полів, наприклад, CHAR чи VARCHAR, з якими він використовується, щоб знаходити підстрічки. Тобто він шукає у текстовому полі, чи співпадає з умовою його вміст. Як умову оператор використовує групові символи (wildkards) -- спеціальні символи, які можуть відповідати чому-небудь. Є два типи групових символів, що використовуються з LIKE:

символ підкреслення (_) замінює будь-який один символ. Наприклад, 'b_t' буде відповідати словам 'bat' або 'bit', але не буде відповідати 'brat'.

знак відсотка (%) замінює послідовність будь-якого числа символів (включаючи символи нуля). Наприклад, '%p%t' буде відповідати словам 'put', 'posit', 'opt', але не 'spite'.

Наприклад, нам потрібно вивести всіх абонентів, прізвище яких починається на "Гавр":

SELECT * from Phone where Abonent Like 'Гавр%'

1.3.7 Агрегатні функції

Запити можуть видавати узагальнене групове значення полів і значення одного поля. Це робиться за допомогою агрегатних функцій. Агрегатні функції видають одне значення для всієї групи таблиці. Список цих функцій:

Функція

Обчислює для кожної групи запитів

Count

Кількість рядків

Sum

Суму значень заданого параметра

Avg

Середнє значення заданого параметра

Max

Найбільше значення заданого параметра

Min

Найменше значення заданого параметра

Всі агрегатні функції ігнорують порожні (NULL) значення полів. Виняток становить лише функція COUNT. При вказуванні як аргументу символа "*" (зірочка) вона видасть кількість рядків незалежно від того, які значення в них містяться.

Наприклад, потрібно визначити кількість фільмів в таблиці film_list:

SELECT COUNT(Name) FROM film_list

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

SELECT MIN(Year)

FROM film_list

where year<>0

Агрегатні функції можуть приймати як аргумент не тільки поля таблиці, але й вирази. Наприклад, визначити максимальну різницю років між датою випуску фільму й датою його додавання до таблиці:

Select (Year(`AddDate')-'уеаґ)

FROM film_list

where 'year'<>0

В останньому запиті використано функцію Year(), яка виділяє з дати рік. Оскільки в таблиці є поле з аналогічним іменем, то ім'я поля взято у зворотні лапки.

При створенні будь-якого запиту обов'язково потрібно визначити:

поля вихідної таблиці запиту (тобто поля таблиці, яка буде отримана внаслідок виконання запиту);

вхідні таблиці, з яких будуть вибиратися дані для формування вихідної таблиці.

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

1.4 Операції Над Схемою Бази Даних

Стовпці та типи даних

1. Числові типи

2. NUMERIC, DECIMAL (DEC)

3. найчастіше використовується для зберігання грошових значень (дійсні числа)

4. INTEGER (INT)

5. ціле число, займає 4 байти

6. TINYINT( BIT, BOOL)

7. ціле, 1 байт

8. SMALLINT

9. ціле, 2 байти

10. MEDIUMINT

11. ціле, 3 байти

12. BIGINT

13. ціле, 8 байт

14. FLOAT

15. дійсне число зі звичайною точністю

16. DOUBLE (REAL, DOUBLE PRECISION)

17. дійсне число з подвійною точністю

18. Текстові типи та стрічки

19. CHAR

20. стрічка фіксованої довжини (макс.255)

21. VARCHAR

22. стрічка змінної довжини (макс.255)

23. TEXT, BLOB

24. стрічка змінної довжини до 64 Кбайт (65535 символів)

25. TINYTEXT, TYNYBLOB

26. стрічка змінної довжини (до 255 символів )

27. MEDIUMTEXT, MEDIUMBLOB

28. стрічка змінної довжини до 16 Мбайт (16777215 символів)

29. LONGTEXT,LONGBLOB

30. стрічка змінної довжини до 4 Gb

31. ENUM

32. цей тип дозволяє перерахувати набір можливих значень (одне з перерахованих)

33. SET

34. множина (кілька з перерахованих)

35. Типи дати та часу

36. DATE

37. дата у вигляді РРРР-ММ-ДД

38. TIME

39. час у вигляді ГГ:ХХ:СС

40. DATETIME

41. комбінація попередніх двох типів у форматі: РРРР-ММ-ДД ГГ:ХХ:СС

42. TIMESTAMP

43. в стовпець буде записано дату створення або останнього редагування запису у форматі DATETIME (якщо не буде зазначено іншої дати)

44. YEAR

45. рік, може бути:

46. YEAR(2)

47. РР (для дат з 1970 по 2069)

48. YEAR(4)

49. за замовчуванням РРРР

50 Основні операції

Операція

Призначення

Create database

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

Use

Зробити базу поточною

Create table

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

Drop database

Видалення бази даних

Drop table

Видалення таблиці з бази даних

Show tables

Перегляд списку таблиць поточної бази даних

Alter table

Зміна структури таблиці, що вже існує

Show databases

Перегляд списку баз даних

Describe

Отримання інформації про конкретну таблицю

Типи таблиць

Тип

Опис

MyISAM

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

ISAM

Старий тип таблиць Подібний до MyISAM, але з меншими можливостями.

MEMORY

Функціонально еквівалентний MyISAM, але дані зберігає в оперативній пам'яті (а не на диску), він надзвичайно швидкий і є оптимальним для тимчасових таблиць

InnoDB

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

BDB

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

HEAP

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

MERGE

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

2. Завдання на контрольну роботу

2.1 Групові завдання

1. Спроектувати структуру бази даних.

2. Написати SQL-запити для створення бази даних.

3. Заповнити базу даних, використовуючи SQL-оператори.

Варіант 1-5

База даних - Абітурієнт. Відомості, які необхідно фіксувати: реєстраційний номер; прізвище, ім'я та по-батькові; дата народження; країна; область; місто (село); вулиця; дім; квартира; пільги (золота медаль, червоний диплом, Чорнобильське посвідчення і т.п.); навчальний заклад, що закінчив; середній бал атестата; група; бал ЗНО з математики; бал ЗНО з фізики; бал ЗНО з української мови.

Варіант 6-10

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

Варіант 11-15

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

Варіант 16-20

База даних - Сесія. Відомості, які необхідно фіксувати: номер залікової книжки; прізвище, ім'я та по-батькові студента; група; предмет; бал за шкалою ECTS (за 100 бальною системою); прізвище, ім'я та по-батькові викладача; форма контролю; дата складання заліку чи екзамену.

Варіант 21-25

База даних - Магазин. Відомості, які необхідно фіксувати: код товару; назва товару; виробник; дата завезення; ціна; дата придбання; кількість; прізвище, ім'я та по-батькові продавця; знижка; код покупки; назва магазину, адреса магазину.

2.2 Індивідуальні завдання

Виконати запити (в одному із запитів обов'язково створити віртуальну таблицю):

Варіант 1

Запит 1. Порахувати скільки абітурієнтів мають пільги.

Запит 2. Ввести список абітурієнтів, що мають золоту медаль, впорядкований за алфавітом.

Запит 3. В якому місті абітурієнти отримали найбільше золотих медалей.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

переселити всіх абітурієнтів з Луцька до Ківерець;

встановити всім абітурієнтам з усіх предметів по 200 балів;

відмінити останню дію;

вивести прізвища абітурієнтів, їх міста проживання та бали з усіх предметів.

Варіант 2

Запит 1. Вивести прізвища та повні адреси абітурієнтів-іноземців.

Запит 2. Вивести список відмінників, що мають бал ЗНО з математики вищий за 160.

Запит 3. З якого предмету абітурієнти набрали найбільшу сумарну кількість балів.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

змінити дату народження абітурієнту Іванову;

встановити всім середній бал атестату 5.0;

відмінити останню дію;

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

Варіант 3

Запит 1. Вивести список абітурієнтів, що мають Чорнобильське посвідчення, впорядкований за спаданням середнього балу атестату.

Запит 2. Вивести список абітурієнтів, до Дня народження яких лишилося менше двох місяців.

Запит 3. В яку групу подано найбільше заяв абітурієнтів.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

змінити вид пільги абітурієнту з реєстраційним номером 5;

встановити всім бал ЗНО з математики рівний 120;

відмінити останню дію;

вивести реєстраційні номери, прізвища, імена та по-батькові та бали ЗНО з математики всіх абітурієнтів.

Варіант 4

Запит 1. Вивести прізвище, ім'я та по-батькові, а також дату народження абітурієнтів, які старші за 20 років.

Запит 2. Вивести список абітурієнтів, чиї прізвища починаються на літеру «А».

Запит 3. На якій вулиці найбільше абітурієнтів.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

додати новий вид пільг (призер олімпіад);

видалити всі дані про абітурієнтів з Луцька;

відмінити останню дію;

вивести дані про те, скільки студентів має який вид пільг.

Варіант 5

Запит 1. Вивести рейтинг середніх балів атестату абітурієнтів з Луцька.

Запит 2. Вивести список абітурієнтів, кількість букв у прізвищі яких менша, ніж у назві рідного міста.

Запит 3. В якій області абітурієнти мають найменше Чорнобильських посвідчень.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

встановити всім абітурієнтам бал ЗНО з математики рівний 120, якщо він був менший за 120;

видалити всі види пільг;

відмінити останню дію;

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

Варіант 6

Запит 1. Вивести прізвища та адреси всіх професорів.

Запит 2. Вивести прізвища трьох людей, в яких найбільші статті.

Запит 3. Визначити з якого міста найбільше учасників конференції.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

збільшити всім іноземним учасникам розмір оргвнеску на 5%;

змінити прізвища всіх учасників, що починаються на літеру «К», на прізвище «Іванов»;

відмінити останню дію;

вивести прізвища, країну, та розмір оргвнеску всіх учасників конфенерції.

Варіант 7

Запит 1. Вивести прізвища, імена та по батькові, телефони та e-mail всіх асистентів.

Запит 2. Визначити скільки людей сплатили оргвнесок за останні сім днів.

Запит 3. Визначити приблизні витрати на одного учасника (суму загального оргвнеску поділити на кількість учасників).

Запит 4. Написати трансакцію, в якій виконати наступні дії:

зменшити всім розмір статті на одну сторінку;

встановити всім однаковий робочий телефон;

відмінити останню дію;

вивести прізвища, телефони та розміри статей всіх учаників конференції.

Варіант 8

Запит 1. Вивести прізвища учасників, розмір оргвнеску та кількість сторінок статті.

Запит 2. Вивести прізвища та поштову адресу учасників, що не мають електронної пошти.

Запит 3. Визначити вчене звання учасника, який найпізніше зареєструвався.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

змінити електронну адресу учаснику із заданим прізвищем (на Ваш вибір);

встановити всім учасникам сьогоднішню дату сплати оргвнеску;

відмінити останню дію;

вивести дані про учасників: прізвище, місто, електронна адреса, дата сплати оргвнеску.

Варіант 9

Запит 1. Вивести прізвище учасника, який найраніше зареєструвався.

Запит 2. Вивести прізвища та ініціали всіх учасників, прізвищя яких починаються літерою «П».

Запит 3. Відсортувати реєстраційні номери та прізвища учасників конференції за вченими званнями.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

додати до оргвнеску всіх учасників з Луцька 2%;

встановити всім учасникам розмір статті 100 сторінок;

відмінити останню дію;

вивести прізвища учасників, розмір оргвнеску та розмір статті.

Варіант 10

Запит 1. Вивести список учасників конференції, робочі телефони яких починаються цифрою 72.

Запит 2. Визначити сумарний оргвнесок всіх учасників конференції.

Запит 3. Відсортувати прізвища та ініціали учасників конференції за датою реєстрації.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

змінити робочий телефон учаснику із заданим реєстраційним номером (на Ваш вибір);

встановити всім учасникам вчене звання - професор;

відмінити останню дію;

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

Варіант 11

Запит 1. Вивести номери залікових книжок, прізвища та ініціали студентів групи КСМз-51.

Запит 2. Вивести прізвища всіх студентів-заочників, відсортовані по зростанню.

Запит 3. Порахувати кількість відмінників (середній бал >89).

Запит 4. Написати трансакцію, в якій виконати наступні дії:

додати студентам, у яких в цьому місяці День народження до стипендії по 50 грн;

встановити всім студентам третього курсу (наприклад КСМ-31, АВ-32 і т.п.) однакові прізвища;

відмінити останню дію;

вивести прізвища, дати народження та розміри стипендій всіх встудентів.

Варіант 12

Запит 1. Вивести прізвища та розмір стипендії всіх студентів державної форми навчання.

Запит 2. Вивести прізвища студентів, у яких більше 36 пропущених занять.

Запит 3. Визначити студентів якого року народження найбільше, вивести їх кількість.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

змінити прізвище студентці Івановій на Тимощук;

встановити всім студентам групи КСМз-51 сьогоднішню дату народження;

відмінити останню дію;

вивести прізвища, групи та дати народження всіх студентів, відсортувати дані по групах.

Варіант 13

Запит 1. Відсортувати студентів групи КСМ-з-51 за спаданням середнього балу.

Запит 2. Вивести прізвище та групу студента, що отримує найбільшу стипендію.

Запит 3. Визначити в якій групі найбільша кількість студентів отримує стипендію.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

збільшити розмір стипендії на 5% всім студентам п'ятого курсу (наприклад, група КСМ-51, АВ-54 і т.п.);

змінити дані так, щоб у всіх студентів було нуль пропусків занять;

відмінити останню дію;

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

Варіант 14

Запит 1. Вивести графік отримання стипендії заданим студентом (на Ваш вибір).

Запит 2. Вивести прізвище та вік наймолодшого студента.

Запит 3. Визначити в якій групі найбільше дівчат.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

зменшити всім студентам кількість пропусків на 2, за умови що їх було більше 2;

встановити всім стипендію 1000 грн;

відмінити останню дію;

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

Варіант 15

Запит 1. Вивести прізвища та групи всіх дівчат.

Запит 2. Вивести номер залікової, прізвище та вік найстаршого студента.

Запит 3. Визначити в якій групі найбільше пропущених занять.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

додати запис про ще одного студента;

перевести всіх студентів на державну форму навчання;

відмінити останню дію;

вивести прізвища, номери залікових та дані про форму навчання кожного студента.

Варіант 16

Запит 1. Знайти середній бал кожної групи.

Запит 2. Вивести прізвища всіх викладачів з програмування, а також дати, коли вони приймали екзамени.

Запит 3. Вивести номер залікової книжки та прізвище студента, який найкраще вчиться.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

додати запис про ще одного студента;

перевести всіх студентів в групу КСМз-51;

відмінити останню дію;

порахувати кількість студентів в кожній групі.

Варіант 17

Запит 1. Вивести прізвища, номери залікових книжок та бали всіх студентів з фізики, відсортовані по групах.

Запит 2. Вивести прізвища та ініціали викладачів, які вчора приймали екзамени.

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

Запит 4. Написати трансакцію, в якій виконати наступні дії:

всім студентам, які мають менше 35 балів, поставити по 35 балів;

поставити всім студентам з програмування по 90 балів;

відмінити останню дію;

вивести прізвища та ініціали, назву предмета та кількість балів кожного студента; відсортувати по предметах.

Варіант 18

Запит 1. Вивести прізвища та ініціали студентів, які протягом останніх п'яти днів здали заліки.

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

Запит 3. Вивести дату, коли студенти найгірше завали екзамен.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

перевести студента Іванова в групу КСМ-51;

зробити всіх студентів п'ятого курсу (КСМ-51, АВ-52 і т.п.) однофамільцями;

відмінити останню дію;

вивести прізвища та групи всіх студентів п'ятого курсу.

Варіант 19

Запит 1. Вивести рейтинг студентів групи КСМз-51.

Запит 2. Вивести прізвища та групи студентів, які отримали менше 35 балів, а також прізвища викладачів, що їх так оцінили.

Запит 3. Визначити в якій групі найбільше двієчників (менше 60 далів).

Запит 4. Написати трансакцію, в якій виконати наступні дії:

замінити викладача з організації баз даних на викладача з програмування (дві дисципліни читає викладач з програмування);

встановити сьогоднішню дату складання всіх заліків;

відмінити останню дію;

вивести перелік предметів, прізвища викладачів, форми контролю та дати складання заліків чи екзаменів.

Варіант 20

Запит 1. Вивести рейтинг відмінників (від 90 до 100 балів), відсортований по групах.

Запит 2. Вивести прізвища, ініціали викладачів та предмети, з яких вони приймали екзамени чи заліки. Прізвища викладачів відсортувати за алфавітом.

Запит 3. Знайти з якого предмету найнижчі бали.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

додати запис про ще одного студента;

перевести всім студентам по сто балів з фізики;

відмінити останню дію;

вивести прізвища, номери залікових та бали з фізики кожного студента.

Варіант 21

Запит 1. Вивести ціни всіх товарів, які сьогодні привезли в магазини.

Запит 2. Визначити на яку суму продано сьогодні товарів конкретним продавцем (на Ваш вибір).

Запит 3. Вивести дату та місце придбання найдорожчого товару.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

додати до бази запис про ще одну покупку;

анулювати всі знижки;

відмінити останню дію;

вивести дані про всі покупки та розміри знижок.

Варіант 22

Запит 1. Вивести перелік магазинів, в яких є товари фірми «Світоч».

Запит 2. Вивести асортимент товарів та їх цін в конкретному магазині (на Ваш вибір).

Запит 3. Вивести адресу магазину, де продається найдешевший товар.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

збільшити ціну на молоко фірми Комо у всіх магазинах на 1 грн.;

встановити ціну на хліб 5 грн. у всіх магазинах;

відмінити останню дію;

вивести ціни на хліб та молоко у всіх магазинах, а також фірми-виробники цих товарів.

Варіант 23

Запит 1. Вивести перелік всіх магазинів на заданій вулиці (на Ваш вибір).

Запит 2. Вивести перелік товарів, які знаходилися в магазині більше 30 днів.

Запит 3. Порахувати суму останньої покупки.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

збільшити ціну кожного товару фірми Світоч на 1%;

встановити ціну всіх товарів 8 грн;

відмінити останню дію;

вивести перелік виробників, їх товарів та цін на ці товари.

Варіант 24

Запит 1. Вивести назву магазину, в якому найбільший відсоток знижки.

Запит 2. Вивести назви магазинів та їх продавців, відсортувати по назві магазину.

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

Запит 4. Написати трансакцію, в якій виконати наступні дії:

змінити адресу заданого магазину (на Ваш вибір);

встановити кількість кожного товару в кожній покупці рівну 10;

відмінити останню дію;

вивести назви магазинів, їх адреси та кількість проданого товару в кожному магазині.

Варіант 25

Запит 1. Вивести перелік магазинів та їх адрес, в яких можна купити молоко.

Запит 2. Вивести всіх виробників та назви товарів, відсортувати по виробниках.

Запит 3. Визначити дату завезення та виробника найдешевшого товару.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

зменшити знижку у всіх магазинах на 1%;

встановити на всі товари сьогоднішню дату завезення;

відмінити останню дію;

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

3. Приклад виконання завдання

3.1 Постановка задачі

База даних - Персональні комп'ютери. Відомості, які необхідно фіксувати: тип процесора; тактова частота; об'єм ОЗУ; об'єм жорсткого диска; дата складання; кількість usb-портів; розмір монітора; тип монітора; встановлена ОС; дата продажу; гарантія; магазин; адреса магазину; телефон магазину; прізвище та ініціали власника магазину. Завдання

Спроектувати структуру бази даних.

Написати SQL-запити для створення бази даних.

Заповнити базу даних, використовуючи SQL-оператори.

Виконати запити:

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

Запит 2. Вивести параметри комп'ютерів, які ще на гарантії, та назви магазинів, де їх могли купити, відсортовані в алфавітному порядку.

Запит 3. Знайти на якій вулиці найбільше комп'ютерних магазинів та їх кількість.

Запит 4. Написати трансакцію, в якій виконати наступні дії:

змінити номер телефону в магазині Спрайт;

змінити всі двоцифрові номери будинків, що закінчуються п'ятіркою на 1;

відмінити останню дію;

вивести назви магазинів прописними літерами, їх адреси та телефони.

Побудова концептуальної моделі бази даних

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

Магазин

Комп'ютер

назва

тип процесора

адреса

тактова частота

телефон

об'єм ОЗУ

прізвище та ініціали власника

об'єм жорсткого диска

дата складання

кількість usb-портів

розмір монітора

тип монітора

операційна система

дата продажу

термін гарантії

в якому магазині куплений

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

В одному магазині може продаватися довільна кількість комп'ютерів і однакові комп'ютери можуть продаватися в різних магазинах, тому тут має місце зв'язок «багато-до-багатьох»:

Напрями стрілок вказують, який із об'єктів повинен вказувати на зв'язаний з ним об'єкт. Для зв'язків такого типу потрібно створити додатковий проміжний об'єкт, який міститиме дані про обидва зв'язані об'єкти і зв'язок «багато-до-багатьох» таким чином замінимо парою зв'язків «один-до-багатьох»:

Цю схему й покладемо в основу нашої бази даних.

Зведемо отриману нами інформацію в таблиці.

Ім'я об'єкту: shop

ім'я атрибуту

тип даних атрибуту

примітка

id_shop

ціле число

код

name_shop

стрічка змінної довжини

назва

street

стрічка змінної довжини

вулиця

h...


Подобные документы

  • Архітектура Web-баз даних. Загальні відомості про мову SQL. Створення таблиць баз даних. Використання бібліотеки для пошуку інформації. Аутентифікація за допомогою РНР й MySQL. Зберігання паролів в окремому файлі на сервері, використання бази даних.

    курсовая работа [913,8 K], добавлен 12.01.2010

  • Інтернет як система об'єднаних комп'ютерних мереж для зберігання і передачі інформації. Літературні джерела щодо сутності баз даних та їх функціонування. Порівняльний аналіз MySQL, Oracle та Microsoft Access. Створення бази даних за допомогою MySQL.

    курсовая работа [1,5 M], добавлен 05.02.2014

  • Основні відомості про реляційні бази даних, система управління ними. Основні директиви для роботи в середовищі MySQ. Визначення та опис предметної області. Створення таблиць та запитів бази даних автоматизованої бази даних реєстратури в поліклініці.

    курсовая работа [2,9 M], добавлен 06.11.2011

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

    курсовая работа [1,5 M], добавлен 03.11.2011

  • Створення вжитків зі сторони сервера баз даних. Оголошення обмежень цілісності в таблиці визначень або з використанням механізму тригерів баз даних. Описання мови команд SQL*Plus як інтерактивної системи, невід'ємної для бази даних Oracle і вжитків.

    реферат [17,3 K], добавлен 09.08.2011

  • Методологія застосування можливостей середовища MySQL для роботи з базами даних. Реляційна основа та інтерактивні запити. Динамічне визначення даних. Вигляд таблиць після заповнення. Встановлення зв’язків, проектування схеми. Створення запитів та форм.

    курсовая работа [2,0 M], добавлен 10.04.2015

  • Проектування бази даних, що реалізує звіти про графік робіт на об’єктах впродовж місяця. Графічне зображення нагромаджувачів даних. Побудова діаграм потоків даних і переходів станів, таблиць у вигляді двовимірного масиву, запитів. Створення бази даних.

    курсовая работа [1,2 M], добавлен 29.02.2012

  • Поняття бази даних та основне призначення системи управління. Access як справжня реляційна модель баз даних. Можливості DDE і OLE. Модулі: Visual Basic for Applications програмування баз даних. Система управління базами даних Microsoft SQL Server 2000.

    реферат [41,2 K], добавлен 17.04.2010

  • Аналіз об'єктів дослідження, проектування баз даних. Розробка програмного забезпечення для роботи зі спроектованою базою даних. Реалізація індексів, опис метаданих в середовищі MySQL. Специфікація DDL для MySQL, протокол тестування DDL-сценарії.

    контрольная работа [389,9 K], добавлен 05.01.2014

  • Можливості застосування середовища MySQL для роботи з базами даних. Завдання системи SQL Server. Розробка концептуальної моделі бази даних "Сервісний центр". Створення таблиць phpmyadmin, заповнення їх даними. Створення запитів і зв’язків у phpmyadmin.

    курсовая работа [2,3 M], добавлен 27.05.2015

  • Поняття та переваги реляційної бази, автоматизація аналізу даних. Опис основних компонентів сховища даних AS/400. Процес перетворення оперативних даних в інформаційні. Багатовимірні бази даних (MDD). Опис даних і створення файлів в інтеграційних базах.

    реферат [36,8 K], добавлен 14.01.2012

  • Використання баз даних та інформаційних систем. Поняття реляційної моделі даних. Ключові особливості мови SQL. Агрегатні функції і угрупування даних. Загальний опис бази даних. Застосування технології систем управління базами даних в мережі Інтернет.

    курсовая работа [633,3 K], добавлен 11.07.2015

  • Загальна характеристика розвитку електронної торгівлі в Україні на сучасному етапі. Сутність і переваги клієнт-серверної технології, вибір мови програмування. Розробка структури бази даних та веб-сервера MySQL 4.1.8 для прийому замовлень в режимі online.

    дипломная работа [2,5 M], добавлен 24.09.2012

  • Структура (класифікація) типів даних мови T. Pascal: прості, структуровані; стандартні модулі, їх призначення, символьні масиви. Визначення рядкового типу даних, основні операції. Стандартні засоби обробки рядків: присвоювання, порівняння, з’єднання.

    реферат [32,3 K], добавлен 13.11.2010

  • Систематизація знань як основна функція бази даних. Логічне та фізичне проектування бази даних. Створення таблиць у базі даних, визначення основних зв'язків. Інструментальні засоби проектування та створення програмного забезпечення для обробки даних.

    курсовая работа [1,4 M], добавлен 29.04.2010

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

    дипломная работа [4,5 M], добавлен 17.09.2011

  • Функції інформаційної системи. Аналіз функцій системи управління базами даних: управління транзакціями і паралельним доступом, підтримка цілісності даних. Аналіз системи MySQL. Елементи персонального комп’ютера: монітор, клавіатура, материнська плата.

    дипломная работа [1,2 M], добавлен 15.05.2012

  • Бізнес процеси й елементи даних. Специфікація елементів даних. Діаграма класів проектування. Створення та використання об'єктів бази даних. Таблиці, обмеження цілісності, тригери, типові вибірки, представлення, індекси. Типові оператори модифікації даних.

    курсовая работа [255,3 K], добавлен 01.06.2019

  • Аналіз предметної галузі, постановка задачі, проектування бази даних. UML-моделювання, побудова ER-діаграми, схеми реляційної бази даних у третій нормальній формі. Призначення і логічна структура. Опис фізичної моделі бази даних, програмної реалізації.

    курсовая работа [3,5 M], добавлен 28.11.2011

  • Використання баз даних та інформаційних систем у сучасному житті. Основні відомості про реляційні бази даних. Зв'язування відносин. Структурована мова запитів SQL. Сутність та загальний опис бази даних "Архітектурна компанія". Приклад створення таблиці.

    курсовая работа [320,7 K], добавлен 19.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.