навчитися отримувати, модифікувати, зберігати, шукати та фільтрувати дані

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
СІ
Кафедра:
Кафедра КСА

Інформація про роботу

Рік:
2018
Тип роботи:
Розрахункова робота
Предмет:
Бази даних та знань

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет „Львівська політехніка” Інститут Комп’ютерних Технологій, Автоматики та Метрології Кафедра КСА / Розрахункова робота Проектування реляційної бази даних MS SQL Server 2005 та клієнтської програми на основі ADO.NET 2.0 з дисципліни: «Бази даних та знань» Варіант: 4 Мета роботи 1. закріпити отримані при вивченні даного курсу знання і навики проектування ER-моделі реляційної бази даних з використанням IE-нотації та реалізації цієї моделі для СКБД Microsoft SQL Server 2005 у вигляді SQL-сценарію діалектом мови Transact-SQL; 2. ознайомитися з основними об’єктами моделі ADO.NET 2.0 та на їхній основі навчитися отримувати, модифікувати, зберігати, шукати та фільтрувати дані; 3. отримати навики розроблення клієнтських програм для баз даних з ієрархічною організацією структури даних. Завдання 1. Розробити детальну структуру для вказаної БД у вигляді ER-діаграми. Усі таблиці БД мають бути приведені до 3-ї нормальної форми. 2. Структура БД має забезпечувати цілісність значень, наприклад, міста мають вибиратися з переліку існуючих значень. 3. Для БД має бути передбачено як мінімум 2 індекси. 4. Для реалізації структури БД, зображеної на ER-діаграмі, написати мовою T-SQL сценарій для її створення у ядрі MS SQL Server 2005. 5. Ім’я створюваної БД має складатися з прізвища студента та номеру варіанту, наприклад, Shylo41. 6. Під час створення БД за допомогою SQL-сценарію фізична БД має автоматично заповнюватися пробними даними (хоча б по декілька стрічок для кожної таблиці, окрім BLOB-полів). 7. Для роботи зі спроектованою БД написати клієнтську Windows Forms програму мовою C++/CLI чи C# у середовищі Microsoft Visual Studio .NET 2005. 8. Передбачити можливість заповнення довідкових таблиць, що забезпечують цілісність значень, в окремих вікнах. 9. Стрічка підключення до БД сервера має розміщуватися у зовнішньому файлі, для можливості її корегування. 10. На основній формі програми мають бути розміщені: прізвище та ім’я студента, а також номер залікової книжки. 11. Для ілюстрації роботи програми-клієнта з БД підготувати необхідні фотографії та інформацію в rtf-форматі. БД № 4 «Облік фонотеки на радіостудії» Структура БД: накласти такі обмеження: порядковий № в альбомі не може бути від’ємним; рік народження виконавця не може бути більшим за поточну дату. SQL-сценарій: Первинні та альтернативні ключі створюються одночасно з таблицями. Зовнішні ключі створюються після створення таблиць. Обмеження CHECK створюються одночасно зі створенням таблиць. Програма-клієнт: створити фільтр для пошуку за назвою продукту. Інформація, що має відображатися у БД: Пісня: назва пісні, назва альбому, зображення обкладинки альбому, тривалість пісні, порядковий номер в альбомі, виконавець, біографія виконавця (rtf-текст), країна виконавця, рік народження виконавця, студія запису альбому, адреса студії запису, виконавчий директор студії запису, рік запису, каталожний № альбому. ER-діаграма / SQL-сценарій CREATE TABLE Studio( name varchar(255) NOT NULL, addres varchar(255), director varchar(255) NOT NULL, number_albom int NOT NULL, CONSTRAINT PK_Studio PRIMARY KEY (number_albom), CONSTRAINT CHK_Studio CHECK (number_albom>0), CONSTRAINT UC_Studio UNIQUE (name) ); CREATE TABLE Song( ID int NOT NULL, name varchar(255) NOT NULL, duration int NOT NULL, number int NOT NULL, CONSTRAINT PK_Song PRIMARY KEY (ID), CONSTRAINT CHK_Song CHECK (number>0), CONSTRAINT UC_Song UNIQUE (name) ); CREATE TABLE Performer( name varchar(255) NOT NULL, biography text, country varchar(255) NOT NULL, borthday int NOT NULL, CONSTRAINT PK_Performer PRIMARY KEY (name), CONSTRAINT CHK_Performer CHECK (borthday<=year(getdate())) ); CREATE TABLE Albom( number int NOT NULL, name varchar(255) NOT NULL, photo image, ID_song int NOT NULL, name_performer varchar(255) NOT NULL, year_note int NOT NULL, CONSTRAINT CHK_Albom CHECK (number>0), ); ALTER TABLE Albom ADD CONSTRAINT FK_Studio_Albom FOREIGN KEY (number) REFERENCES Studio(number_albom); ALTER TABLE Albom ADD CONSTRAINT FK_Song_Albom FOREIGN KEY (ID_song) REFERENCES Song(ID); ALTER TABLE Albom ADD CONSTRAINT FK_Performer_Albom FOREIGN KEY (name_performer) REFERENCES Performer(name); INSERT INTO Song VALUES(1,'Immortalized', 258, 2); INSERT INTO Song VALUES(2,'The Eye Of The Storm', 81, 1); INSERT INTO Song VALUES(3,'The Vengeful One', 252, 3); INSERT INTO Studio VALUES('Reprise Records', NULL, 'Kavin Cherko', 1); INSERT INTO Performer VALUES('David Draiman', NULL, 'Chicago', 1973); INSERT INTO Albom VALUES(1,'Immortalized', NULL, 1, 'David Draiman', 2015); INSERT INTO Albom VALUES(1,'Immortalized', NULL, 2, 'David Draiman', 2015); INSERT INTO Albom VALUES(1,'Immortalized', NULL, 3, 'David Draiman', 2015); INSERT INTO Song VALUES(4,'Sparta', 265, 1); INSERT INTO Studio VALUES('Abyss', NULL, 'Piter Tugtgrenom', 2); INSERT INTO Performer VALUES('Joakim Broden', NULL, 'Falun', 1980); INSERT INTO Albom VALUES(2,'IThe Last Stand', NULL, 4, 'Joakim Broden', 2016); Клієнтська частина private void button1_Click(object sender, EventArgs e) { con = new SqlConnection("Server=.\\SQLEXPRESS;Database=Voichenko4;Integrated Security = true"); con.Open(); } private void button2_Click(object sender, EventArgs e) { if (con != null && con.State != ConnectionState.Closed) con.Close(); } private void Form1_FormClosed(object sender, FormClosedEventArgs e) { if (con != null && con.State != ConnectionState.Closed) con.Close(); } private void button3_Click(object sender, EventArgs e) { try { if (textBox1.Text != null) { SqlCommand cmd = new SqlCommand("SELECT Song.name AS song, Albom.name AS albom, Albom.photo, Song.duration, Song.number AS Song_number, Performer.name AS performer, Performer.biography, Performer.country, Performer.borthday, Studio.name AS studio, Studio.addres, Studio.director, Albom.year_note, Albom.number AS number_albom FROM Song, Albom, Performer, Studio WHERE Albom.number = Studio.number_albom AND Albom.ID_song = Song.ID AND Albom.name_performer = Performer.name AND Albom.name = '" + textBox1.Text + "';", con); SqlDataReader read = cmd.ExecuteReader(); listBox1.Items.Clear(); bool fl = false; while (read.Read()) { fl = true; listBox1.Items.Add("Альбом "+read["albom"].ToString() + " " + "Пісня " + read["song"].ToString() + " " + "Виконавець " + read["performer"].ToString() + " " + "Студія " + read["studio"].ToString()); } if (fl == false) listBox1.Items.Add("Нiчого не знайдено"); read.Close(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } / Висновок Отже, на цій я закріпив отримані при вивченні даного курсу знання і навики проектування ER-моделі реляційної бази даних з використанням IE-нотації та реалізації цієї моделі для СКБД Microsoft SQL Server 2005 у вигляді SQL-сценарію діалектом мови Transact-SQL. Ознайомився з основними об’єктами моделі ADO.NET 2.0 та на їхній основі навчитися отримувати, модифікувати, зберігати, шукати та фільтрувати дані. Отримав навики розроблення клієнтських програм для баз даних з ієрархічною організацією структури даних.
Антиботан аватар за замовчуванням

20.04.2018 21:33

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!