Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 9 Конструирование многотабличной базы данных Цель работы- познакомиться с пон

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 9.11.2024

Информатика. Спецглавы. 2012

Лабораторная работа № 9

Конструирование многотабличной базы данных

 Цель работы: познакомиться с понятием реляционная база данных, научиться проектировать хранилище данных на основе связанных таблиц, разработать базу данных и запросы для извлечения данных, научиться строить запросы двумя способами: с помощью конструктора и на языке SQL. Работа выполняется в СУБД OpenOffice.org Base, NeoOffice Base или MS Access.

Задание

  1. Проанализируйте данные, которые должны быть сохранены в базе. Определите тип каждого поля и его удобное для дальнейшей работы название, определите количество таблиц, их названия и распределите поля по таблицам с учетом избыточности данных. Определите ключевые поля, вид связи между таблицами. Нарисуйте на листке бумаги схему данных (Рис. 1).
  2. Загрузите СУБД, перейдите в раздел Таблицы. Создайте таблицы в соответствии с разработанной схемой данных, установите ключевые поля и их автозаполнение.
  3. Установите между таблицами связи.
  4. Заполните таблицы данными. Заполнение начинайте с таблицы, которая не имеет поля, связанного с первичным ключом другой таблицы.
  5. При помощи конструктора запросов создайте запросы № 1-5. Проверьте результаты выполнения запросов. Перейдите в режим SQL запросов, просмотрите текст этих запросов.
  6. Создайте запросы № 6-10 в режиме  SQL. Проверьте результаты запросов.
  7. На основе запроса 2 создайте форму для просмотра содержимого базы данных по одной записи (в виде отдельных карточек).
  8. На основе запроса 7 создайте форму для просмотра содержимого базы данных в виде списка.
  9. На основе запросов 3 и 8 создайте отчеты. Для создания отчетов воспользуйтесь мастером отчетов. Для отчетов выберите разные стили оформления.  

Справочный материал

Исходные данные для конструирования базы данных

 Поля: фамилия, имя, дата рождения, место жительства, № стационарного телефона, № мобильного телефона, название тарифа (тарифный план), используемого для оплаты разговоров, оператор связи, размер абонентской платы, поминутный тариф. При проектировании следует учесть, что у абонента может быть несколько городских и несколько мобильных телефонов.

 Запросы:

  1. Абоненты, имеющие какой-нибудь телефон: фамилия, имя, дата рождения.
  2. Абоненты, имеющие стационарный телефон: фамилия, имя, номер телефона.
  3. Абоненты заданного оператора связи и их номера телефонов: фамилия, имя, номер телефона.
  4. Количество имеющихся в базе номеров мобильной связи.
  5. Абоненты, использующие заданный тарифный план.
  6. Абоненты, имеющие мобильный телефон: фамилия, имя, номер телефона.
  7. Количество абонентов в зависимости от выбранного тарифного плана (см. примеры запросов 4 и 5).
  8. Абоненты, имеющие хотя бы один мобильный телефон: фамилия, имя, дата рождения (используйте в запросе команду SELECT DISTINCT).
  9. Тарифный план с наибольшей абонентской платой: название тарифа, оператор, абонентская плата, поминутный тариф.
  10. Список абонентов и их телефонов, использующих только повременную оплату: Фамилия, имя, телефон, тарифный план.

Пример конструирования двухтабличной базы данных

Проектирование структуры данных

Имеются данные об участниках студенческой олимпиады: фамилия, имя, год рождения, номинация, название команды, вуз, регион, где находится вуз. От вуза участвует одна команда. В каждой команде может быть несколько участников.

Если все данные поместить в одну таблицу, то сведения о команде и вузе будут многократно продублированы, что увеличит объем хранимых данных. Поэтому персональные данные  участников (фамилия, имя) поместим в одну таблицу - Студенты, а данные о командах — в другую - Команды. Для идентификации записи в таблице Студенты введем идентификатор участника (целое число) и сделаем его ключевым. Ключевое поле содержит неповторяющиеся записи и обязательно для заполнения. Для идентификации записи в таблице Команды введем ключевое поле Идентификатор команды. Для связывания таблиц в таблицу Студенты добавим поле Идентификатор команды. Тип связи: Много (Студенты) к одному (Команды).

В результате получим следующую схему данных:

Студенты

Команды

ID_student (идентификатор команды, первичный ключ, целое)

First_name (фамилия, текст)

Last_name (имя, текст)

BD_Year (год рождения, целое)

Nomination (номинация, текст)

ID_team (идентификатор команды, целое)

Team_name (название команды, текст)

University (вуз, текст)

Region (регион, текст)

Рис. 1

Создание базы данных

Файл / Создать Базу данных / Создать новую базу данных. Откажитесь регистрировать базу данных.

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

Создание таблицы

Перейдите в раздел Таблицы. Создайте таблицу в режиме дизайна (Конструктор таблиц): укажите имена полей, их типы. Тип текстового поля обозначается ключевым словом VARCHAR, целого - INTEGER, твенного - FLOAT, даты  - DATE.

Задайте ключевое поле (первичный ключ) ID_student — см. контекстное меню левого серого поля Конструктора таблиц. Установите для него автозаполнение.

Сохраните таблицу с именем Студенты.

Закройте Конструктор таблиц.

Связывание таблиц

Сервис / Связи...

Откроется окно Конструктора связей. Из него добавьте обе таблицы и закройте окно. Мышкой или с помощью команды Создать связь соедините поля ID_team обеих таблиц. Параметры связи оставьте по умолчанию.

Сохраните связи и закройте окно Конструктора связей.

Построение запроса при помощи Конструктора запросов

  1. Выбрать всех участников олимпиады. Вывести фамилию, имя. Для запроса требуются данные только из таблицы Студенты:
  1. Выбрать участников олимпиады, выступающих в заданной номинации (задана номинация Java-программирование). Вывести только фамилию, имя. Для запроса требуются данные только из таблицы Студенты:

Чтобы не выводилось поле Nomination, следует в строке Видимый снять флажок.

  1.  Вычислить количество участников, выступающих в заданной номинации. Для Вычислений используется стандартная функция Количество (Count). Здесь поле Notification не отображается при выводе результата, а используется только для отбора записей. В поле ID_student применена функция, подсчитывающая количество отобранных записей:
  1. Вычислить количество участников, выступающих в каждой номинации. Здесь следует применить группировку по полю  Nomination — функцию Group. Для каждого неповторяющегося значения из этого поля подсчитано количество записей по другому полю:

Примеры запросов на языке SQL

Команда SELECT — одна из наиболее часто используемых команд языка SQL. Она используется для создания запросов. После названия команды перечисляются через запятую поля, являющиеся результатом запроса, ключевое слово  FROM определяетсписок таблиц, из которых берутся данные. Если данные должны быть получены из разных таблиц, перед именем поля следует указать имя таблицы "Студенты.First_name". Предложение  WHERE определяет условие отбора.

  1.  Выбрать всех участников олимпиады. Вывести фамилию, имя. Для запроса требуются данные только из таблицы Студенты.

SELECT "First_name", "Last_name" FROM "Студенты"

  1.  Выбрать участников олимпиады, выступающих в заданной номинации (задана номинация Java-программирование). Вывести только фамилию, имя. Для запроса требуются данные только из таблицы Студенты.

SELECT "First_name", "Last_name" FROM "Студенты" WHERE "Nomination" = 'Java-программирование'

  1. Вычислить количество участников, выступающих в заданной номинации. Для Вычислений используется стандартная функция COUNT():

SELECT COUNT( "ID_student" ) FROM "Студенты" WHERE "Nomination" = 'java-программирование'

Другие стандартные функции:

MAX() - наибольшее значение, MIN() - наименьшее значение, AVERAGE() - среднее значение, SUM() - сумма.

  1.  Вычислить количество участников, выступающих в каждой номинации. Здесь следует применить группировку по полю  Nomination:

SELECT COUNT( "ID_student" ) FROM "Студенты" GROUP BY "Nomination"

  1.  Выбрать участников олимпиады из заданной команды (указать название команды).

Для этого запроса требуются данные из обеих таблиц. Записи отбираются, если одновременно выполнено два условия: совпали названия названия команд в таблицах Студенты и Команда и название команды в таблице Команды совпало с заданным (Бинарик). В запросе используется логический оператор AND — И (также в запросах можно использовать OR – ИЛИ и NOT — НЕ).

SELECT "Команды"."Team_name", "Студенты"."First_name", "Студенты"."Last_name" FROM "Студенты", "Команды" WHERE "Студенты"."ID_team" = "Команды"."ID_team" AND "Команды"."Team_name" = 'Бинарик'

  1. Выбрать самого молодого участника. Этот запрос содержит еще один вложенный запрос. Вложенный запрос вычисляет максимальное значение года, затем вычисленное значение используется основным запросом в условии отбора. Такой запрос практически невозможно создать с помощью Конструктора запросов.

SELECT "First_name", "Last_name" FROM "Студенты" WHERE "BD_year" = ( SELECT MAX( "BD_year" ) FROM "Студенты" )

3




1. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата бiологiчних наук КИЇВ ~
2. тема та повноваження органів управління зовнішньополітичною діяльністю.
3. Сердечная деятельность
4. темами основанными соответственно на принципе большинства и на принципе пропорционального пред стави
5. кваліфікаційний рівень- спеціаліст Галузь знань- 0401 Природничі науки Спеціальність- Біологія
6. Курсовая работа- Особенности развития американо-египетских отношений в 198090-е годы
7. круглый стол В ноябре 2001 г
8. Студенческий 1600 руб
9. Выбрать и скачать программы для чтения электронных книг можно здесь
10. общеизвестны Это новые правила русскохо языка произношения слоу и друхое
11. Коммерческие банки Российской Федерации
12. Смеpть бандуpиста
13. 1контроль дет для определения их технического состояния
14. Аудиторская выборка
15.  За это время и мнения критиков и моя собственная дальнейшая работа улучшили мое понимание поднятых в ней пр
16. Объединение альтернативных гипотез на формирование русел
17. Основные достижения культуры Древнего Китая
18. Измерение постоянных токов
19. технический прогресс и перспективы постиндустриальной цивилизации
20. Задание 2 2 Краткое описание предприятия- Турагентство Рай находится в довольно развитой части города и