2. Реляционная алгебра над учебной базойR1 - список абитуриентов, сдававших репетиционные вступительные экзамены;R2 - список абитуриентов, сдававших вступительные экзамены на общих основаниях;R3 - список абитуриентов, принятых в институт.Необходимо написать ответ на запрос в виде формулы реляционной алгебры. Запрос: “Список абитуриентов, которые поступали два раза и поступили в вуз".Таблица 2.1 - Отношение R1|
Обозначение записи | ФИО абитуриента | Номер и серия паспорта | № Школы | | a | Жилкова О.А. | 32 05 4237 | № 31 | | b | Богач Д.О. | 34 07 4385 | № 42 | | с | Конопелько О.П. | 37 08 4282 | № 56 | | d | Кочкина Т.В. | 38 02 3458 | № 52 | | e | Докучаев Ю.А. | 58 02 3718 | № 62 | | f | Богданова Ю.В. | 38 72 4290 | № 48 | | g | Сидорова С.И. | 39 52 4870 | № 45 | | h | Сидоров А.А. | 38 59 3295 | № 46 | | l | Тарабрина Л.В. | 40 58 2598 | № 49 | | |
Таблица 2.2 - Отношение R2 |
Обозначение записи | ФИО абитуриента | Номер и серия паспорта | № Школы | | a | Жилкова О.А. | 32 05 4237 | № 31 | | b | Богач Д.О. | 34 07 4385 | № 42 | | d | Кочкина Т.В. | 38 02 3458 | № 52 | | h | Сидоров А.А. | 38 59 3295 | № 46 | | m | Тарабрин В.В. | 35 92 4058 | №48 | | n | Голоушкина В.А. | 38 92 4259 | № 52 | | o | Токарева М.А. | 39 98 4085 | № 46 | | p | Круглова Т.Ю. | 32 58 3498 | № 47 | | |
Таблица 2.3 - Отношение R3 |
Обозначение записи | ФИО абитуриента | Номер и серия паспорта | № Школы | | a | Жилкова О.А. | 32 05 4237 | № 31 | | b | Богач Д.О. | 34 07 4385 | № 42 | | d | Кочкина Т.В. | 38 02 3458 | № 52 | | h | Сидоров А.А. | 38 59 3295 | № 46 | | p | Круглова Т.Ю. | 32 58 3498 | № 47 | | с | Конопелько О.П. | 37 08 4282 | № 56 | | |
Операция реляционной алгебры - “пересечение". R1 (a,b,c,d,e,f,g,h,l) R2 (a,b,d,h,m,n,o,p) =R3 (a,b,d,h) 3. База данных для предметной области “Учебные пособия"Ненормализованное представление информации в виде схемы.Приведение к третьей нормальной форме.первая нормальная форма - каждое поле таблицы представляет уникальный тип информации;Таблица “Дисциплины" - номер дисциплины, наименование дисциплины, количество часов;Таблица “Пособия” - номер пособия, ФИО автора, Номер дисциплины;Таблица “Специальности” - номер специальности, наименование специальности;вторая нормальная форма - каждая таблица должна иметь первичный ключ, который может состоять из одного Ии нескольких полей.Таблица “Дисциплины" - номер дисциплины;Таблица “Пособия” - номер пособия;Таблица “Специальности” - номер специальности.третья нормальная форма - столбцы, не являющиеся ключевыми, зависят от первичного ключа таблицы и не зависят от всех остальных столбцов. Для связывания таблиц “Дисциплины" и “Специальности” необходимо создать дополнительную таблицу “Дисциплины-Специальности".Таблица “Дисциплины-Специальности" - номер дисциплины, номер специальности.Данные таблиц.Таблица 3.1 - Таблица “Дисциплины”|
Номер дисциплины | Наименование дисциплины | Количество часов | | 1 | Информатик | 132 | | 2 | Экономика | 180 | | 3 | Базы данных | 72 | | 4 | Основы бухгалтерского учета | 86 | | 5 | Основы программирования | 92 | | 6 | Теория вероятностей и математическая статистика | 146 | | 7 | Мировая экономика | 112 | | 8 | Компьютерные сети | 98 | | |
Таблица 3.2 - Таблица “Пособия” |
Номер пособия | ФИО автора | Номер дисциплины | | 1 | Джон Вейкас | 3 | | 2 | Роджер Дженнингс | 3 | | 3 | Вирджиния Андерсон | 1 | | 4 | Попов А.А. | 1 | | 5 | Булатов А.С. | 2 | | 6 | Бендина Н.В. | 4 | | 7 | Видяпин В.И. | 2 | | 8 | Дурович А.П. | 4 | | 9 | Коуров Л.В. | 1 | | 10 | Кашанин Т.В. | 7 | | 11 | Гмурман В.Е. | 6 | | 12 | Кенин А.М. | 8 | | 13 | Питер Эйткен | 5 | | 14 | Подбельский В.В. | 5 | | 15 | Вендров А.М. | 7 | | 16 | Рапаков Г.Г. | 8 | | 17 | Якушева Г.В. | 6 | | 18 | Комягина В.Б. | 4 | | 19 | Бердиченко Е.В. | 7 | | |
Таблица 3.3 - Таблица “Специальности” |
Номер дисциплины | Наименование дисциплины | | 101170 | Прикладная информатика в экономике | | 220135 | Программное обеспечение ВТ и АС | | 11370 | Бухгалтерский учет | | 13568 | Экономическая теория | | 73809 | Администрирование компьютерных сетей | | |
Таблица 3.4 - Таблица “Дисциплины - Специальности" |
Номер специальности | Номер дисциплины | | 101170 | 1 | | 101170 | 5 | | 101170 | 6 | | 101170 | 2 | | 101170 | 7 | | 220135 | 1 | | 220135 | 5 | | 220135 | 6 | | 220135 | 3 | | 11370 | 1 | | 11370 | 4 | | 11370 | 2 | | 13568 | 2 | | 13568 | 6 | | 13568 | 7 | | 13568 | 1 | | 73809 | 3 | | 73809 | 5 | | 73809 | 8 | | |
Создание таблиц. Для создания запросов выбрана СУБД ACCESS. CREATE дисциплины (number integer, name_disz varchar (100), hour integer); CREATE пособия (number integer, author varchar (100), diszipl integer); CREATE специальности (number varchar (10), name_spez varchar (100)); CREATE дисциплины_специальности (number_spez varchar (100), number_disz integer). Заполнение таблиц данными. Для примера показаны вставки по одной записи. INSERT INTO дисциплины (number, name_disz, hour) VALUES (1, “Информатика”, 132); INSERT INTO специальности (number, name_spez) VALUES (“101170", “Прикладная информатика в экономике”); INSERT INTO пособия (number, autor, diszipl) VALUES (1, “Джон Вейкас”, 3); INSERT INTO дисциплины_специальности (number_spez, number_disz) VALUES (“101170”, 1) Запрос1 - Для номера специальности “220135" вывести наименование этой специальности, наименования дисциплин для этой специальности, у которых количество часов больше 90 и меньше 140, а также авторов пособий для этих дисциплин. SELECT специальности. number AS "Номер специальности", специальности. name_spez AS "Специальность", дисциплины. name_disz AS "Дисциплина", дисциплины. hour AS "Количество часов", пособия. author AS "Автор пособия" FROM специальности, дисциплины, пособия, дисциплины_специальности WHERE дисциплины_специальности. number_disz=дисциплины. number And дисциплины_специальности. number_spez=специальности. number And пособия. diszipl=дисциплины. number And специальности. number="220135" And дисциплины. hour Between 90 And 140 ORDER BY дисциплины. name_disz, пособия. author; Запрос 2 - Вывести для каждой специальности номер специальности, наименование специальности, количество дисциплин для каждой специальности, у которых количество часов больше 90 и меньше 150. SELECT специальности. number AS "Номер специальности", специальности. name_spez AS "Специальность", COUNT (дисциплины_специальности. number_disz) AS "Количество дисциплин" FROM специальности, дисциплины_специальности, дисциплины WHERE дисциплины_специальности. number_spez=специальности. number And дисциплины_специальности. number_disz=дисциплины. number And дисциплины. hour Between 90 And 150 GROUP BY специальности. number, специальности. name_spez ORDER BY специальности. name_spez; Литература1. Базы данных: теория и практика: Учебник для вузов/ Б.Я. Советов., В.В. Цехановский, В.Д. Черотовской. - М.: Высш. шк., 2005. - 463 с. ил. 2. Вейскас Д. эффективная работа с Microsoft Access 97 - СПб: ЗАО “Издательство “Питер””, 1999. - 976 с.: ил. 3. В.В. Корнеев, А.Ф. Гареев, С.В. Васютин, В.В. Райх. Базы данных. Интеллектуальная обработка информации. - М.: Издатель Момачева С.В., Издательство Нолидж, 2001. - 496 с., ил. 4. Дженнингс, Роджер. Использование Microsoft Access 2000. Специальное издание.: Пер. с англ.: Уч. пос. - М.: Издательский дом “Вильямс", 2000. - 1152 с.: ил. - Парал. тит. англ.
Страницы: 1, 2, 3
|