Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
samples / Zaochniki / Базы и банки.doc
Скачиваний:
26
Добавлен:
25.03.2015
Размер:
98.82 Кб
Скачать
  1. Проектирование баз данных

В реляционных базах данных любая таблица рассматривается как отношение между ключем и остальными элементами данных в строке (сам термин "реляционная" от relation - отношение). Таким образом, процесс проектирования базы данных - это определение состава отношений.

Процесс проектирования состоит из следующих этапов:

1) определение объектов, сведения о которых отображаются в базе данных (в теории реляционных баз данных эти объекты называются "сущностями");

2) определение связей между объектами;

3) определение атрибутов объектов;

4) нормализация отношений.

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

Различают три типа взаимосвязей между объектами:

1) взаимосвязь "один к одному" (обозначается <---->): каждому экземпляру объекта одного типа соответствует один и только один экземпляр объекта другого типа. На практике такой тип взаимосвязи встречается достаточно редко, т.к. такие отношения можно без потери общности объединить в одно. Разделение информации между двумя отношениями может иметь смысл из соображений производительности и секретности. Например, все сведения о преподавателях разделяются на активно используемую небольшую таблицу основных сведений (табельный номер, ФИО, должность, кафедра) и большую, редко используемую таблицу анкетных данных, доступ к которой ограничен соответствующим уровнем полномочий;

2) взаимосвязь "один ко многим" (обозначается <---->>): одному экземпляру первого (родительского) объекта соответствует несколько экземпляров второго (дочернего) объекта. Это основной вид связи между объектами.

3) взаимосвязь "многие ко многим" (обозначается <<---->>): одному экземпляру первого объекта соответствует несколько экземпляров второго и наоборот. Такой вид связи не допускается в реляционных базах данных непосредственно и реализуется путем введения промежуточного объекта, хранящего идентификаторы связанных объектов.

Третий этап проектирования - определение атрибутов объектов.

В состав атрибутов объекта должны быть включены:

1) ключевые атрибуты, однозначно определяющие экземпляр объекта;

2) ключи связанных объектов. Для связи "один к одному" каждый объект должны содержать ключ связанного, или оба объекта должны иметь одинаковое значение ключа для связанных экземпляров (например, табельный номер преподавателя как ключ в обоих таблицах: основных сведений и анкетных данных). Для связи "один ко многим" дочерний объект должен содержать ключ родительского;

3) неключевые атрибуты, характеризующие объект.

Состав отношений и группировку атрибутов по отношениям в базе данных можно определить различными способами. Для получения наиболее рациональной совокупности отношений используется их нормализация (4-й этап проектирования БД).

  1. Язык sql и его возможности, выборка данных средствами sql.

SQL означает Structured Query Language - Это - язык который дает возможность создавать и работать в реляционных базах данных.

Запрос выборки данных – команда, которая сообщает программе, управляющей базой данных, какую информацию требуется выбрать из таблиц в память. Эта информация обычно посылается непосредственно на экран компьютера или терминал, ее можно также послать принтеру, сохранить в файле или представить как вводную информацию для другой команды или процесса. Запросы выборки обычно рассматриваются как часть языка DML.

Эта команда запроса на выборку данных называется SELECT и имеет следующую структуру:

SELECT [ALL | DISTINCT] <имена полей>

FROM <имена таблиц>

[where <условие выборки>]

[group by <Имена полей группировки>]

[having <условие на группу>]

[order by <имена полей сортировки> ASC | DESC]

Имена полей задаются через запятую. Если выборка производится из нескольких таблиц, то во избежание дублирования имен их указывают в виде <Имя таблицы>.<имя поля>. Если из таблицы выбираются все поля, то список имен полей можно заменить на «*»

При наличии ключевого слова DISTINCT из таблицы, полученной применением списка выборки к результату табличного выражения, удаляются строки-дубликаты; при указании ALL (или просто при отсутствии DISTINCT) удаление строк-дубликатов не производится

Раздел ORDER BY позволяет установить желаемый порядок: по возрастанию (ASC) или убыванию DESC - просмотра результата выражения запросов

Раздел WHERE позволяет задать условие, по которому записи будут включаться или исключаться из результирующего запроса.

Раздел HAVING может осмысленно появиться в табличном выражении только в том случае, когда в нем присутствует раздел группировки GROUP BY. Условие поиска этого раздела задает условие на группу строк сгруппированной таблицы. Формально раздел HAVING может присутствовать и в табличном выражении, не содержащем GROUP BY. В этом случае полагается, что результат вычисления предыдущих разделов представляет собой сгруппированную таблицу, состоящую из одной группы без выделенных столбцов группирования. Результатом выполнения раздела HAVING является сгруппированная таблица, содержащая только те группы строк, для которых результат вычисления условия поиска есть true.

Пример запроса: из таблицы Student получить фамилии и номера зачеток всех студенток, получающих специальность Т100100

Номер зачетки

ФИО

Код спец

Жен

SELECT [Student].[Номер зачетки], [Student].[ФИО]

FROM Student

WHERE (([Код Спец]='Т100100') And ([Жен]=True))

ORDER BY [Student].[ФИО];

ИА-98-21

Сысов С.К.

П120111

Нет

М-2000-86

Карпенко А.Н

М030201

Да

М-2003-01

Соловьева Т.В.

М030201

Да

М-2003-02

Калинчук А.А.

М030201

Да

Ф-2000-100

Тужиков С.Д.

Т100100

Нет

Ф-2000-101

Шумская Т.М.

Т100100

Да

Ф-2000-85

Ковальчук А.В.

Т100100

Нет

Соседние файлы в папке Zaochniki