Реферат Курсовая Конспект
Сравнение однотабличной и многотабличной баз данных - раздел Программирование, 1. Основные Понятия: База Данных (Бд), Банк Данных (Бнд), Субд. 1 2....
|
1. Основные понятия: база данных (БД), банк данных (БнД), СУБД. 1
2. Компоненты БнД.. 1
3-4. Этапы проектирования БД и модели, создаваемые в процессе проектирования: инфологическая, даталогическая, физическая, внешняя. 2
5. Инфологическое моделирование предметной области. Состав инфологической модели (ИЛМ). 3
6. Описание объектов и их свойств. Разновидности свойств объектов. 3
7. Описание связи между объектами. Типы (степени) связи, классы принадлежности. 5
8. ER-диаграммы и их разновидности. Понятия сущности, связи, атрибуты. 6
9.Описание сложных объектов. Составные, обобщенные, агрегированные объекты.. 8
10. Даталогическое проектирование БД: цель и этапы даталогического проектирования. Определение состава БД. 10
11. Разновидности даталогических моделей (ДЛМ). 11
12.Основные понятия реляционных БД (РБД): кортеж, домен, отношение, степень отношения, мощность отношения, первичный и внешний ключи. 12
13. Индексация файлов (таблиц) в БД. Индексные файлы и индексные ключи. 13
14. Метод проектирования РБД на основе ИЛМ (правила 1-12). 13
15. Пример проектирования РБД: создание ИЛМ и переход к ДЛМ. 17
16 Сравнение однотабличной и многотабличной баз данных. 20
17 Операции Реляционной Алгебры. 20
18 Structured Query Language. 22
19 Правила записи оператора SELECT. 23
20 Предложение Select 24
21, 22 Предложение WHERE.. 24
23 Составные условия поиска. Таблицы истинности. 24
24 ORDER BY.. 25
25 UNION.. 25
26 Многотабличные запросы на чтение. 25
27 Псевдонимы таблиц, самосоединение таблиц. 25
28 Агрегатные функции языка SQL. 26
29. Запросы с группировкой и ограничения на них. 27
30. Условия поиска групп и ограничения на эти условия. 28
31. Вложенный запрос и его особенности. 28
32. Внешние ссылки и связанные подзапросы. 29
33. Условия поиска с вложенным запросом. 30
34. Внесение изменений в БД: добавление, удаление и обновление данных. 31
35. Задание и изменение структуры БД: операторы CREATE TABLE, DROP TABLE, ALTER TABLE. 33
36. Создание и удаление индексов операторами CREATE/DROP INDEX. 35
37. Создание представлений оператором CREATE VIEW. 35
1. Основные понятия: база данных (БД), банк данных (БнД), СУБД.
База данных – поименованная совокупность взаимосвязанных данных, управляемых специальной системой, называемой системой управления базой данных (СУБД).
СУБД – совокупность специальных языковых и программных средств, облегчающих пользователям выполнение всех операций, связанных с организацией хранения данных, их корректировкой и доступом к ним.
БД и СУБД являются компонентами более сложной системы – банка данных (БнД)
Банк данных (БнД) – система, состоящая из БД, программных, технических, языковых, организационно-методических средств, предназначенных для обеспечения централизованного накопления и коллективного многоцелевого пользования базой данных.
I Инфологическое моделирование как результат разработки модели ПО
Предметная область – это часть реального мира, которая представляет интерес.
Инфологическая модель предметной (ИЛМ) области – описание предметной области, выполненное без ориентации на использованные в дальнейшем СУБД и технологические средства, и отражающие информационные аспекты ПО.
II Даталогическое проектирование
Даталогическая модель (ДЛМ) строится на основе ИЛМ. ДЛМ БД является концептуальной моделью БД и отражает логические связи между информационными элементами ДЛМ. В ДЛМ фиксируются данные и связи данных между ними.
ДЛМ строится в терминах информационных единиц, допустимых в той конкретной СУБД, в среде которой проектируется БД. ДЛМ зависит от выбора СУБД для разработки БнД или информационной модели.
Схема БД - описание ДЛМ на языке выбранной СУБД.
III Физическое проектирование
Для привязки ДЛМ к среде хранения используется модель данных физического уровня (физическая модель, внутренняя модель). Эта модель БД определяется используемыми ЗУ, способами физической организации данных в среде хранения.
Физическая модель, также как и ДЛМ, строится с учетом особенностей выбранной СУБД.
Физическое проектирование – описание физической структуры БД.
Описание связи между объектами. Типы (степени) связи, классы принадлежности.
Помимо описания объекта с его свойствами фиксируются связи между объектами разных классов в инфологической модели.
Различают 4 типа связи:
1. 1:1
2. 1:N (один ко многим).
3. N:1 (многие к одному).
4. N:N (многие ко многим).
Помимо «тип связи» используется понятие «степень связи». В инфологической модели помимо степени связи надо указывать принадлежность связи.
Класс принадлежности – показывает должен или не должен объект одного класса участвовать в связях с объектами другого класса. Класс принадлежности объекта может быть обязательным или необязательным.
Обязательный класс принадлежности.
Если все объекты первого класса должны участвовать в связи с объектами второго класса, то класс принадлежности объектов 1-го класса называется обязательным.
Необязательный класс принадлежности.
Если некоторые объекты 1-го класса могут не участвовать в связях с объектами 2-го класса, то класс принадлежности объектов 1-го класса называются необязательными.
ER-диаграммы и их разновидности. Понятия сущности, связи, атрибуты.
Преподаватель читает курс.
Связь именуется глаголом «читает».
Связь между объектами может быть выражена 2 способами представления с помощью ER-диаграмм.
Диаграмма ER-экземпляра.
По номеру курса можно однозначно идентифицировать курс.
Описание сложных объектов. Составные, обобщенные, агрегированные объекты
По степени сложности различают простые и сложные объекты.
Простой объект – объект, который рассматривается как неделимый.
Сложный объект – объект, который представляет собой объединение других объектов, также выделяемых в предметной области.
ИЛП
Лингвистические отношения
–описания всех терминов и понятий, которые используются при описании объектов.
Nom – порядковый номер.
KCategory – приватизированная P, неприватизированная N, коммун. K
Money - в как ед.
Алгоритмический набор показателей(атрибутов).
Граф взаимосвязей показателей.
Описание информационных потребностей пользователей
Должны быть идентифицированы все запросы, которые могут поступать от пользователей БД.
1) Вывести список всех жителей с указ. общим доходом.
2) Вывести список жителей, где общий доход >= налогооблагаемого min.
3) Подсчитать налоги отдельных жителей и общую сумму налогов.
Ограничение целостности.
формулируются условия, которым удовлетворяют отдельные показатели или группы показателей, чтобы инф. БД имела смысл.
-Доход>0
-Значение KCategory выбиралось из списка(N, K, P)
Ограничение целостности используется при проектирование БД и разработке информационных систем, чтобы контролировать правильность данных, ввод в БД и обеспечение корректности вычислений.
ДЛП
Анализ СУБД, ознакомление со средствами проектирования БД, определение состава БД.
При выполнении ДЛП надо определить состав БД.
Операции Реляционной Алгебры.
РА – мат. основа РБД, это алгебра взаимосвязи между особыми множествами, называемыми отношениями. В РА предусматриваются проекция, выборка, соединение, объединение отношений, пересечениеи вычитание отношений, умножение и деление.
R
НП | ЗАВКАФ | НТЕЛ |
Шангин | ||
Вернер | ||
Вернер | ||
Шангин |
r – конкретный картеж в R,
X – подмножество атрибутов в отношении,
r[X] – расположенные в ряд значения атрибутов картежа r, входящих в подмножество Х.
X = {НП, ЗАВК}; r[X] = <103, Вернер>.
Результат операции ПРОЕКЦИЯ – проекция исходного отношения R на подмножество X, которое состоит из R[X] = {z[x] | z R}
R1=R[НП ЗАВКАФ]
НП | ЗАВКАФ |
Шангин | |
Вернер | |
Вернер | |
Шангин |
R1=R[ЗАВКАФ НТЕЛ]
ЗАВКАФ | НТЕЛ |
Шангин | |
Вернер |
ВЫБОРКА – операция, при которой отношения исследуют по строкам и выбирают из отношения строки, удовлетворяющие некоторым условиям.
R[(x)] = {r | z R (r[x])}; X={ЗАВКАВ}; (x)=(ЗАВКАФ = ‘Шангин’)
НП | ЗАВКАФ | НТЕЛ |
Шангин | ||
Шангин |
СОЕДИНЕНИЕ (ОБРАТНАЯ ПРОЕКЦИИ) – для создания 1 нового отношения из двух уже существующих, путем сцепления кортежей 1 отношения с картежами второго. Причем сцепляются только кортежи, в которых значения атрибута Х в первом отношении = значению Y во втором отношении.
R1->r1; R2->r2;
R1[X=Y]R2 = {<r1, r2> | r1R1 r2R2(r1[X]=r2[Y])}
R1 = [ЗАВКАФ= ЗАВКАФ]R2
НП | ЗАВКАФ | ЗАВКАФ | НТЕЛ |
Шангин | Шангин | ||
Вернер | Вернер | ||
Вернер | Вернер | ||
Шангин | Шангин |
ОБЪЕДИНЕНИЕ – получение отношения, полностью объединяющего картежи, содержащиеся в отношениях R и S. Эти отношения ДОЛЖНЫ иметь одинаковое количество атрибутов и одинаковый порядок их следования. Результат объединения равен сумме отношений
RS = {x | xR xS}
ПЕРЕСЕЧЕНИЕ – отношение, состоящее из картежей, одновременно присутствующих в отношениях R и S.
RS = {x | xR xS}
ВЫЧИТАНИЕ – отношение, состоящее из картежей, присутствующих в R и неявляющимися картежами S.
R – S = {x | xR xS}
УМНОЖЕНИЕ – декартово или прямое произведение. Получаем путем скрепления каждого картежа R с каждым из картежей S.
RS = {<r,S> | rR sS}
В первом m атрибутов, во втором n, тогда в итоге m+n атрибутов. Количество атрибутов – степень отношения. Количество кортежей – мощность множества. Мощность RS = произведению количества кортежей 1-го и 2-го отношений.
Правила записи оператора SELECT.
Данный оператор считывает данные из базы и возвращает их в виде таблицы результатов запроса (ТРЗ).
В предложении SELECTуказывается список возвращаемых столбцов, которые должны быть включены в ТРЗ. В предложении FROM указывают список таблиц, которые содержат элементы данных, которые считываются в запросах. WНEREуказывает, что в таблицу результатов запроса должны быть включены только строки, которые удовлетворяют результатам поиска. GROUP BYсоздает итоговый запрос, запрос, который группирует строки из БД по определенному признаку, а затем включает в ТРЗ одну итоговою строку из каждой группы. HAVINGпоказывает, что в ТРЗ следует включить только некоторые из групп. Для отбора включаемых групп задается условие поиска. ORDER BYдля задания сортировки ТРЗ по столбцам, которые указываются в спецификаторах.
ORDER BY
ASC – сортировка по возрастанию (по-умолчанию), DESC – по убыванию. Первый столбец – главный ключ в сортировке, а следующие за ним являются всё более второстепенными ключами сортировки.
UNION
Для объединения результатов нескольких запросов. Используется для таблиц, удовлетворяющих условиям:
1. Кол-во столбцов в объединяемых ТРЗ должно быть одинаковым.
2. Типы данных соответствующих столбцов из 1-й и 2-й таблиц должны совпадать.
3. Ни одна из объединяемых таблиц не должна быть отсортирована с помощью ORDER BY.
Выполняется так, что объединенной таблице повторяющихся строк не будет. Другая форма оператора – UNION ALL – позволяет получить таблицу со всеми строками, включая повторяющиеся.
С помощью оператора UNION можно объединить несколько таблиц.
Многотабличные запросы на чтение.
Например: вывести список жителей, имеющих телефоны, с указанием ФИО и номера телефона.
Операция ПРОЕКЦИИ. PERSON [ADR = ADR] TPHONE.
SELECT FIO, NTEL FROM PERSON, TPHONE
WHEREPERSON.ADR = TPHONE.ADR.
Псевдонимы таблиц, самосоединение таблиц.
Формат: ИМЯ_ТАБЛИЦЫ ПСЕВДОНИМ. Например:
SELECTNOM, FIO, SOURSE, MONEY
FROMPERSON A, PROFIT B, HAVE_D C
WHEREA.NOM = C.NOM AND C.ID = B.ID ANDNOM = 13.
Можно соединить таблицу саму с собой. Например, для поиска однофамильцев:
SELECTA.ADR, B.ADR
FROMPERSON A, PERSON B
WHEREA.FIO = B.FIO AND A.ADR = B.ADR.
Примеры.
1.Количество жителей квартиры и сформировать таблицу результатов
SELECT ADR, COUNT(*) FROM PERSON
GROUP BY ADR.
2.Нужно подсчитать количество источников дохода у каждого жителя.
SELECT NOM, COUNT(ID) FROM HAVE_D
GROUP BY NOM.
3.Сколько различных источников дохода имеют жители каждой квартиры.
SELECET ADR, COUNT(DISTINCT ID) FROM HAVE_D, PERSON
WHERE HAVE_D.NOM = PERSON.NOM
GROUP BY ADR.
Предложение GROUP BY видоизменяет действие агрегатных функций; результаты запроса следует разделять на группы, применить агрегатную функцию к каждой группе и получить для каждой группы 1 строку в таблице результата.
Ограничение на запросы с группировкой.
Столбцы группировки, указанные в предложении GROUP BY, должны быть реальными столбцами таблиц, перечисленными в предложении FROM. Нельзя группировать строки на основании значений вычисляемых столбцов.
Условия поиска групп и ограничения на эти условия.
Они задаются в предложении HAVING и позволяют включить в конечную таблицу результатов информацию только об избранных группах.
SELECT ADR FROM PERSON
GROUP BY ADR
HAVING COUNT(*) > 1.
Ограничения на условия поиска групп
Условия поиска, которые используются в предложении HAVING, применяются не к отдельным столбцам, а к группе в целом.
В условие поиска может входить либо константа, либо агрегатная функция, либо столбец группировки, либо выражение, включающее вышеперечисленные элементы.
SELECT RDATE, SUM(SUMD) FROM PERDON
GROUP BY RDATE
HAVING RDATE < ’11-DECEMBER-2000’
Вложенный запрос и его особенности.
Пример.
Вывести список жителей, у которых общий доход меньше размера самого доходного источника.
SELECT NOM, FIO FROM PERSON
WHERE SUMD < (SELECT MAX(MONEYS) FROM PROFIT).
Вложенный запрос –оператор SELECT, заключенный в круглые скобки, и используемый в предложениях WHERE или HAVING.
Отличия:
1.таблица результатов вложенного запроса всегда состоит из 1-го столбца. Список возвращаемых столбцов во вложенном запросе всегда должен иметь только 1 элемент.
2.во вложенный запрос не может входить предложение ORDER BY для экономии времени.
3.вложенный запрос не может быть запросом на объединение нескольких различных операторов SELECT.
4.особенность: имена столбцов используемых во вложенном запросе могут являться ссылками на столбцы главного или внешнего запроса.
Внешние ссылки и связанные подзапросы.
Пример.
Определить адреса квартир, жители которых не могут оплачивать коммунальные услуги. (Стоимость коммунальных услуг определяется произведением 100 на площадь квартиры), жители могут оплачивать коммунальные услуги, если их общий доход не меньше, чем плата за коммунальные услуги.
SELECT * FROM FLAT
WHERE SKV*100>=(SELECT SUM(SUMD) FROM PERSON
WHERE PERSON.ADR = FLAT.ADR).
FLAT.ADR – внешняя ссылка,представляет собой имя столбца, принадлежащего таблице, указанной в предложении FROM главного запроса и не входящего ни в одну из главных таблиц, перечисленных в предложении FROM вложенного запроса.
Если во вложенном запросе имеется внешняя ссылка, то такой запрос называется связанным.
Особенностью является то, что он выполняется многократно: по одному разу для каждой строки таблицы, указанной в главном запросе.
Условия поиска с вложенным запросом.
Сравнение с результатом вложенного запроса.
Проверка на принадлежность результатам вложенного запроса.
Проверка на существование результатов вложенного запроса.
Многократное сравнение.
Сравнение с результатом вложенного запроса.
|
Проверка на принадлежность результатам вложенного запроса.
SELECT * FROM FLAT WHERE ADR NOT IN (SELECT ADR FROM TPHONE).
Многострочный оператор
Он добавляет в целевую таблицу 1 или несколько строк. Источником новых строк является запрос на чтение, содержащейся внутри оператора INSERT.
INSERT INTO PERSON(FIO, RDATE, POL,SUMD, ADR)
SELECT ‘Алов Наум Наумович’, ’01-JAN-1970’, ‘М’, SUMD, ‘Зеленоград, 1001 - 51’
FROM PERSON
WHERE NOM = 16.
При отсутствии строки под номером 16, СУБД выдаст сообщение об ошибке, т.к. невозможно совершить преобразование пустой строки.
Обновление существующих данных
Наименьшей единицей информации, которую можно обновить в реляционной БД, является значение одного столбца в одной строке значений.
Для обновления 1-го или нескольких столбцов 1-й таблицы существует оператор UPDATE
--UPDATE имя_таблицы --SET --- имя_столбца = выражение------------------------------------------à
выражение | | | |
<------- , ----------------------- àWHERE условие_поискаà
Пример.
Изменяем номер и категорию телефона для определенной квартиры.
UPDATE TPHONE SET NTEL = ’111-0000’, TCATEGORY = ‘C’ WHERE ADR = ‘Зеленоград, 904-55’
Используя оператор UPDATE, можно одновременно изменить несколько столбцов.
Выражение, которое записывается в операторе присваивания, может быть любым правильным выражением языка SQL, результирующее значение которого имеет тип данных соответствующий целевому столбцу. Значение выражения вычисляются на основе значения строки, которое в данный момент обновляется в целевой таблице. Выражение не может содержать какие-либо агрегатные функции и вложенные запросы. Если выражение содержит ссылку на 1-н из столбцов целевой таблицы, то для вычисления выражения используется это значение в текущей строке, которое было перед обновлением. То же самое справедливо для ссылок на столбцы в предложении WHERE.
Язык обработки данных (DML) состоит из операторов UPDATE, DELETE.
DML – Data Manipulation Languages.
DDL – Data Definition Languages.
35. Задание и изменение структуры БД: операторы CREATE TABLE, DROP TABLE, ALTER TABLE.
1.CREATE TABLE. – создание базы таблицы описывается структура таблицы.
Определение первичного ключа
Определение внешнего ключа
|
Пример
CREATE TABLE HAAVE_D
( NOM INTEGER,
ID INTEGER,
COMMENT CHAR(30),
CONSTRAINT PK_HAVE_D PRIMARY KEY (NOM, ID),
CONSTRAINT FK_HAVE_D_1 FOREIGN KEY (NOM) REFERENCES PERSON,
CONSTRAINT FK_HAVE_D_2 FOREIGN KEY (ID) REFERENCES PROFIT,
CONSTRAINT CK_NOM CHEK(NOM IS NOT NULL),
CONSTRAINT CK_ID CHEK(ID IS NOT NULL))
Удаление таблицы. Ненужные таблицы можно удалить из БД посредством оператора DROP TABLE.
При удалении таблицы из БД теряются определения и содержимое таблицы.
Параметр CASCADE указывает на необходимость удалять не только саму таблицу, но и все другие объекты БД, которые содержат ссылки на удаляемую таблицу.
Если задан RESTRICT и в базе данных имеются объекты данных, содержащие ссылку на удаляемую таблицу, то таблица не удалится. Если не указано ни один из параметров, то DROP будет выполняться в зависимости от того, как будет описана таблица.
Создание представлений оператором CREATE VIEW.
VIEW – это SQL-запрос на чтение, которому присвоено имя, а затем сохранено в БД. Представление позволяет пользователю увидеть результаты, а язык SQL обеспечивает возможность доступа к данным т.о., как если бы эти результаты были одной таблицей.
Причины использования представлений:
1. позволяет сделать так, чтобы разные пользователи могли видеть базу данных по-разному;
2. с их помощью можно ограничить доступ к данным, разрешая пользователям видеть только некоторые из строк и столбцов таблицы.
3. представления упрощают доступ к БД, показывая пользователю структуру хранимых данных в наиболее подходящем для пользователя виде.
---CREATE VIEW имя_представления---------------------------------------AS запрос-------------------à
| |
à(-- имя столбца --)à
| |
ß------ , ------ß
Представление является виртуальной таблицей, содержимое которой определяется запросом.
В том случае, если указывается список имен, то он должен содержать список имен элементов, сколько содержится в запросе.
Если в запрос входит вычисляемый столбец или 2 столбца, то обязательно нужно использовать список имен столбцов.
CREATE VIEW INFORM (ADR, NUMBER, TOTAL) AS SELECT ADR, COUNT(*), SUM(SUMD) FROM PERSON GROUP BY ADR.
– Конец работы –
Используемые теги: Сравнение, однотабличной, многотабличной, баз, данных0.083
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Сравнение однотабличной и многотабличной баз данных
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов