Лекция База данных. Понятие сущностей и связей. Создание диаграммы «сущность-связь» на примере документов (закупка, продажа)
Вид материала | Лекция |
СодержаниеER – диаграмм. Ключ сущности Типы данных в Access. |
- Лекция 2, 61.52kb.
- Лекция 2, 84.04kb.
- Лекция №5 диаграммы «сущность-связь» Диаграммы "сущность-связь" (erd), 130.27kb.
- Лекция на тему «Что такое база данных. Реляционная база данных ms access», 67.11kb.
- Лекция: Моделирование бизнес-процессов средствами bpwin: Case-средства для моделирования, 332.23kb.
- Лекция №3 диаграммы потоков данных диаграммы потоков данных, 116.05kb.
- И в содержании возможны ошибки. Лекция, 148.86kb.
- Лекция на тему: Основы организации баз данных, 393.78kb.
- Ms access База данных (БД), 134.51kb.
- Лекция 2 Базы данных, 241.25kb.
Лекция 1.
- База данных. Понятие сущностей и связей. Создание диаграммы «сущность-связь» на примере документов (закупка, продажа), номенклатуры, контрагентов (покупатели, поставщики).
- Понятие первичного ключа.
- Типы данных в Access.
Практика:
- Создание таблиц для сущностей документы, номенклатура, контрагенты;
- элементарные запросы на выборку.
Дом.задание:
1. Предложить способ хранения в одной сущности «Документы» как закупок товара, так и их продаж, с возможностью различия. Описать преимущества и недостатки.
2. Попробовать разбить таблицу на две «Документы» и «Документы_данные» и повторить написание запросов в QBE для новой структуры.
Лекция 1.
Данный курс посвящен изучению основ БД на примере MS Access, а также использованию возможностей SQL в практических целях.
В первом семестре уделим большее внимание организации БД, изучению синтаксиса SQL, написанию запросов. Во втором семестре (ну и частично в первом) рассмотрим, как можно применить SQL и БД к управлению проектами, как решать несложные задачи, например, из аналитической геометрии или мат.анализа при помощи запросов. Вы для себя в дальнейшем сможете определить круг задач, в которых применение SQL наиболее эффективно по сравнению даже с применением программы на С++.
Разбирать все будем на примере MS Access, по причине некоторой наглядности и достаточной простоты использования. Если Вам в дальнейшем понадобится что-то более сложное (MS SQL Server, MySQL или Oracle) Вы уже легко разберетесь, что есть что.
На первом занятии разберемся, что входит в понятие БД и как она должна разрабатываться, а также введем понятия, с которыми будем дальше оперировать. Создадим простую БД и напишем к ней несколько запросов.
БД – структурированный набор данных, описывающий характеристики некоторой реальной системы.
СУБД - Это удобный для пользователя способ работы с всевозможными данными, относящимися к определенной задаче: их сбор, способ хранения и т.д. (и обязательно обработка!!!)
Упражнение 1: БД продаж, что нужно хранить?
Понятно, что если разработчик пишет некоторую программу, то прежде чем приступать непосредственно к написанию кода, разработчик должен вместе с пользователем данной программы выяснить, что и как должно работать, учесть возможные расширения БД в будущем, ее стыковку с уже существующими базами данных у пользователя. Для этого первоначально разработчик совместно с пользователем определяют предметную область для поставленной задачи, далее разработчик реализует физическую структуру предметной области, и только после этого приступает к написанию самого приложения.
Нужно четко понимать, что же именно Вы хотите хранить в базе данных, нужно позволить базе быть достаточно гибкой, чтобы, во-первых, было понятно, что там происходит, а во-вторых, можно было модифицировать базу, не меняя в корне ее структуру.
Определим предметную область на примере упр.1. У нас есть объекты: товары, поставщики, покупатели, документы, склады и т.д. Необходимо отразить в БД все эти объекты и процессы с ними связанные (закупка, продажа и т.д.). Это первый этап разработки – описание и моделирование предметной области.
На данном этапе можно определить понятие сущности и экземпляра сущности. Сущность – это некий класс однотипных объектов, используемых в базе. Например, сущность «Города» - класс однотипных объектов всех городов, а экземпляром сущности в данном случае является один конкретный город «Долгопрудный», сущность «Сотрудники» - экземпляр сущности «Иванов Иван Иванович».
У каждой сущности есть свойства ее характеризующие. Такие свойства называются атрибутами. Например, сущность «Сотрудник» характеризуют следующие свойства: возраст, образование, отдел, зарплата, текущая задача. Понятно, что свойства сущностей также необходимо хранить в базе.
Упражнение 2: Определить сущности, атрибуты сущностей и привести примеры экземпляров сущностей из упр.1.
На следующем этапе создадим логическую модель наших данных, то есть, определим взаимосвязи объектов. На примере Сотрудников:
Сотрудники могут иметь, как только среднее, так и 2 высших образований, числится только в одном отделе, но параллельно работать над несколькими задачами.
Например, взаимосвязь в БД из упр.1 может быть следующей:
Связь между поставщиками и товарами:
задан поставщик, необходимо определить, какие товары он поставляет,
либо задан товар, необходимо определить список поставщиков, занимающихся его поставкой.
Данные связи, а также сущности и атрибуты сущностей обычно изображаются с помощью ER – диаграмм.
Упражнение 2*: Нарисовать ER – диаграмму.
Сущности на диаграмме обозначаются прямоугольниками, атрибуты – эллипсами, а связи – ромбами.
Понятно, что связи – это также часть данных, и они должны быть представлены в базе (также являются сущностями). Например, для реализации приведенной связи используется сущность «документы».
Также вводится понятие «Ключа сущности», которое будем часто использовать в дальнейшем.
Ключ сущности (первичный ключ) - это неизбыточный набор атрибутов, значения которых в совокупности являются уникальными для каждого экземпляра сущности (т.е. ключ может быть составной). Неизбыточность заключается в том, что удалением любого атрибута из ключа нарушается его уникальность. Сущность может иметь несколько различных ключей, поэтому различают первичный ключ и потенциальный ключ.
Упражнение 3: Определить ключ для сущности «товары».
Типы данных в Access.
В Access 97 нажимаем на кнопочку “?” –> «Вызов справки». Далее в появившемся окошке вводим строку «типы данных полей»:
После нажатия на кнопку Display появится следующее окно, в котором следует выбрать пункт
«Свойство ”Тип данных” (DataType)».
Далее отобразится лист со справочной информацией по всем типам данных полей в Access.
Практика:
1. Дробление составных полей на примере нмаш/ндок. Для упрощения последующего анализа нужные поля необходимо атомизировать. Какие поля нужные – определяется самим разработчиком в процессе описания предметной области.
(или на примере адреса проживания: если будет требоваться отделять название города, улицы и тд).
2. Создание структуры таблиц Документы, Документы_данные (с использованием сущностей введенных ранее), определение типов данных для полей, определение первичного ключа:
(на семинаре ограничились одной таблицей, дома предполагается сделать 2 таблицы).
Есть поля:
ндок/нмаш |
покупатель |
дата |
имаш/идок |
товар |
колво |
цена |
3. Реализовать элементарные запросы на выборку с помощью QBE (конструктор запросов) и SQL:
выбрать все даты, когда покупался товар;
выбрать покупателей, которые закупались на прошлой неделе;
выбрать уникальных покупателей, упорядочить по фамилии;
выбрать товары, которые за год были проданы в колве большем 5-ти;
вывести все товары и их суммарное проданное колво, чтобы в сумму попало только, что было продано за раз в колве большем 5-ти.
PS: В Access за переключение из режима конструктора в режим SQL отвечает меню в левом углу панели инструментов:
Полезная литература:
- К.Дж.Дейт «Введение в системы баз данных»
- Т.М.Дадашев, В.Ю.Рубаев, О.Л.Белоусов, Д.Р.Гончар, «Введение в реляционные базы данных и язык SQL»
- MARTIN GRUBER, «Understanding SQL»