Базы данных. Сетевая модель. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Базы данных. Сетевая модель.



Базы данных. Сетевая модель.

Тип связи определяется для 2х видов записи(предок и потомок).Экземпляр типов записи состоит из 1го экземпляра типов записи предков и упорядоченного набора одного или нескольких экземпляров типов записи потомков. Для данного типа записи L с типа записи Р и типом записи потомков С должны выполнятся 2 условия:

1) Каждый экз типа Р явл предком тока в одном экз L.

2) Каждый экз С явл потомком не более чем в одном экз L.

При орг сетевой модели наклад ограничение и возможны ситуации:

1) Тип записи потомка в одном типе записи L1 м.б. типом записи предка в другом экз типа связи L2.

2) Данный тип связи Р м.б. типом записи предка в любом числе типов связей.

3) Данный тип записи Р м.б. типом записи потомком в любом числе типов связей.

4) Может существовать любое число типов связей с одним и тем же типом записи предка и одним и тем же типом записи потомком.

Если l1 и L2 два типа записи с одним и тем же типом записи предка Р, и одним и тем же типом записи С отличаются правилами по которым образуются родство.

5) Тип записи Х и У м.б. предком и потомком в одной связи и потомком и предком в другой.

6) Предок и потомок м.б. одного типа записи.


Манипулирование данными:

1) найти конкретно запись в наборе однотипных записей.

2) Перейти от предка к первому потомку по некоторой связи.

3) Перейти к след потомку по некоторой связи.

4) Перейти от потомка к предку по некоторой связи.

5) Создать или уничтожить запись.

6) Модифицировать запись.

7) Включить, исключить в запись или перенести.

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

Реляционная модель.

Базируется на отношениях и их представлении таблицами. Предложена Коддом. Отношение обладает всеми свойствами множеств. Важнейшее свойство языков данной модели-возможность определять новое отношение, основываясь на существующих отношениях и используя реляционную алгебру и реляционные исчисления.

Реляционная модель данных. Элементы теории множеств.

Множество-правило для принадлежности.

Если В не равно А то В-собственное подмножество.

Функции над подмножествами.

1) Объединение.

2) Пересечение


3)Вычитание

 

Если класс объектов на которых определеляются различн множества которые обозначит юниверсал….

 

Функциональное

Однозначные функции

1) Вова любит водяру

2) Петя любит Машу

3) Маша любит Петю

4) Маша любит Машу

5) Лена любит Петю

Отношение-любит.

Второй способ отображения-графы

……………………………………………………..

Третий-матричный

 

 

Четвёртый-табличный

Кто кого
В в
П п
М м
М м
Л л


Предикарт данного отношения

Отношение в степени 3

Студент Предмет Препод
Иванов Алгебра Шарапов
Иванов Бд Пушников
Петров Алгебра Пушников
Петров Геометр Цыганов
Сидоров Геометр Цыганов
Сидоров Бд Пушников

 

Бывают два вида ограничений:

1) Синтаксический. Нельзя добавить 2 строки, потому что это мн-во.

2) Семантический. Нельзя добавить те строки которых быть не может.

Лекция №3

Реляционная алгебра

Замкнутость реляционной алгебры.

Реляционная алгебра представляет собой набор операторов использующих отношение в качестве аргументов и возвращающие отношение в качестве результатов. Реляционная алгебра является замкнутой так как в качестве аргументов в реляционные операторы можно подставить другие реляционные операторы подходящие по типу. Реляционные операторы:

1) Теоретико-множественные операторы (оператор объединения, оператор пересечения, оператор вычитания, оператор декартового произведения).

2) Специальные реляционные операторы (операторы выборка, проекция, соединения и деления).

Синтаксис выборки

A WHERE c

Пример:

Фамилия ЗП
  Иванов  
  Петров  
  Сидоров  

A where зп<3000; (зарплата меньше 3 тыс руб.)

Итог:

Фамилия ЗП
  Иванов  
  Петров  

 

Данная операция даёт горизонтальный срез отношению.

Оператор Проекция.

Проекция отношения А по атрибутам х,у,z…где каждый атрибут принадлежит отношения А называется отношением с заголовком х,у,z и телом содержащим множество картежей вида (х,у,z), таких для которых в отношении А найдутся картежи со значением атрибута Х равного х, У=у и Z=z.

Синтаксис:

А[x,y,z]

Даёт вертикальный срез отношения в котором удалены все возникшие при таком срезе дубликаты картежей.

Пример:

Наименование Город
1 Иванов Уфа
2 Петров москва
3 Сидоров москва
4 Сидоров Челябинск

А[город поставщика] будет иметь вид:

Город
Уфа
москва
москва
Челябинск

Соединение.

Разновидности:

1) Общая операция соединения. Соединением отношения А и В по условию с, называется отношением вида (A TIMES B) where c, где

С-логическое выражение в которое могут входить атрибуты отношения А и В или скалярные выражения.

Операция соединения-это р-т последовательного применения операции декартового произведения и выборки.

2) Тетта-соединение. Пусть отношение А содержит атрибут х, отношение В содержит атрибут у. А тетта – один из операторов сравнения, тогда тетта соединение отношения А по атрибуту х с отношение В по атрибуту у, называется отношением (А Times B) where x «тетта» у.

Пример:

Наименование Статус
  Макаров  
  Маринкин  
  Черкасов  

Отношение детали:

Наименование Статус
  Болт  
  гайка  
  винт  

Вопрос:какие поставщики имеют право поставлять какие детали?

Ответ: A[x>=y]B.А само отношение будет выглядеть

№поставщика Наименование Поставщика Статус поставщика №детали Наименование детали Статус детали
  макаров     болт  
  макаров     Гайка  
  макаров     Винт  
  маринкин     Винт  
  черкасов     Гайка  
  черкасов     винт  

 

3) Экви-соединение. Частичный случай тетта-соединиения, поэтому А[x=y]B. Пример: отношение Р

№поставщика Наименование поставщика
  Макаров
  Маринкин
  черкасов

Отношение D

№ детали   Наименование детали
  Болт
  Гайка
  Винт

Отношение PD

№ поставщика № детали Кол-во
     
     
     
     
     
     
     

Какие детали поставляются какими поставщиками записываются в след виде:

P[N-пост=N-пост]

(P rename n-пост as nпост 1)

[N пост 1=n пост 2]

(pdrename nпост as n пост 2)

№ пост наименование № пост 2 № детали количество
  макаров      
  макаров      
  макаров      
  маринкин      
  маринкин      
  Черкасов      

 

4) Естественное. Пусть даны отношенияА с атрибутами (А1 а2 аn x1 x2 xn) и В(X1 X2 Xn b1 b2 bn)

Естественным отношением А и В называется отношение с заголовком (А1 А2 Аn x1 x2 xn b1 b2 bn

И телом(a1 a2 an x1 x2 xn b1 b2 bn)

(a1 a2 an x1 x2 xn)принадлежит А и (x1 x2 xn b1 b2 bn)принадл В

Аjoin B

Естественное соединение проходит по всем одинаковым полям. Оно эквивалентно след последовательности раляционных операций:

1) Переименовать одинаковые имена

2) Выполнить декартовое произведение отношений

3) Выполнить выборку по совпадающим атрибутам имеющим одинаковые имена

4) Выполнить проекцию удалив повторяющие атрибуты

5) Переименовать атрибуты вернув им первоначальные имена

Можно выполнить последовательное естественное соединение нескольких отношений:

(A join B) join C= a join(Bjoin C)=a join B join C

Пример:

P join PD join D

Имя поставщика № детали Наименование детали Кол-во
  Макаров   Болт  
  Макаров   Гайка  
  Макаров   Винт  
  Маринкин   Болт  
  Маринкин   Гайка  
  черкасов   болт  

 

Операция деления.

Пусть даны отношения А(Х1 Х2 Хн У1 У2 Ун) и отношение В (У1 У2 Ун)

Деление отношения А на В называется отношением с заголовком (х1 х2 хн) и телом содержащим но-во кортежей (х1 х2 хн) т.ч. для всех кортежей у1 у2 ун принадлеж В в отношении А найдётся кортеж (х1 х2 хн у1 у2 ун). Отношение А называют делимым, отношение В называют делителем.

Синтаксис: А devidby b. В формулировке вопроса всегда есть всё и все.

Пример: вопрос: Какие поставщики поставляют все детали??

1) В качестве делимого возмём проэкцию X=PD[N_пост, N_дет]

№ пост №дет
   
   
   
   
   
   

Y=D[Nдет]

N пост
 
 
 

 

X devide by y

Проверочная

Получить имена поставщиков которые пост по крайней мере 1 гайку.

1й способ((((D where наим детали=гайка)join DP))jon P)[имя поставщика]

2ой способ(((d join Dp)join P)where наименование D =гайка)[наименование поставщика]

2)Поучить имена поставщиков поставляющих все детали

((DP [N_D, N_P] devideby D[D_N])join P)[наим пост]

Получить имена поставщиков не пост деталь номер 2

T1-имена пост (табл)

Т1=Р[N_P]

T2=P join PD

T3= T2 where N_D=2

T4=T3 [N_P]

T5=T1 minus T4

T6 T5 join P

T7=t6[имя]

((P[N_пост]minus ((P join DP)where N_D=2)[N_пост])join P)[наим_пост]

Лекция

Потенциальные ключи.

Пусть дано отношение R, подмножество атрибутов «к» отношения R будем называть потенциальным ключом если «к» обладает следующими свойствами:

1) Свойство уникальности. В отношении не может быть 2х различных значений с одинаковым значение «К».

2) Свойство неизбыточности. Никакое подмножество «к» не обладает свойством уникальности.

Отношение может иметь несколько потенциальных ключей. Первичный(ЗНАЧЕНИЕ НЕ ДОЛЖНО ПОВТОРЯТСЯ)и альтернативный ключ.

Замечание: Первичный ключ служит средством идентификации, по нему мы можем однозначно определить объект, а так же потенциальный ключ служит единственным средством адресации на уровне картежей.

Правило целостности сущности заключается в том что в первичном ключе атрибуты не могут принимать null-значение.

Внешние ключи.

№ пост Наименование пост № детали Наименование детали Количество
  Макаров   Болт  
  Макаров   Гайка  
  Макаров   Винт  
  Маринкин   Болт  
  Маринкин   Гайка  
  Черкасов   болт  

Ключевые поля-№ поставщика и № детали.

 

 

Пусть дано отношение R, подмножество «FK» отношения R будет называться внешним ключом если:

1) Существует отношение S с потенциальным ключом «k».

2) Каждое значение «FK» в отношении R всегда совпадает со значением «К» для некоторого картежа из S либо является null-значением. Отношение S называют родительским, отношение R-дочерним.

Замечания:

1) Внешний ключ может быть простым и составным.

2) Внешний ключ должен быть определён на тех же доменах что и соответствующий первичный ключ родительского отношения.

3) Внешний ключ не обладает свойством уникальности.

4) Если внешний ключ всё-таки обладает свойством уникальности, то связь между отношениями имеет тип один к одному.

5) Значение внешнего ключа должно совпадать со значением потенциального ключа, то обратно не верно.

6) Для внешнего ключа не требуется чтобы он был компонентом некоторого потенциального.

7) Null-значение для атрибутов внешнего ключа допустимы только в том случае, когда атрибуты внешнего ключа не входят в состав потенциального ключа.

 

Логические операторы

Оператор IS NULL

Вывести ФИО, телефон, город, адрес из таблицы Клиенты тех клиентов, которые не являются предприятиями.

SELECT Фамилия, Имя, Отчество, Телефон, Город, Адрес

From клиенты

Where предприятия IS Null

2) Оператор Between…and.

Например:

Выбрать все записи из таблицы Товары, Цена которых более 199, но меньше 2001. Отобразить все поля этой таблицы.

SELECT*

From товары

Where цена BETWEEN 200 and 2000

Оператор IN

Например: вывести клиентов из беларуси или украины(только ФИО и Страну)

SELECT Фамилия, Имя, отчество, страна

From клиенты

Where(страна IN(‘Беларусь’, ‘Украина’)

Оператор like

‘%’-заменяет последовательность символов

‘_’-заменяет единичный символ

Например: вывести клиентов фамилия которых начинается с буквы М(тока ФИО и телефон)

Select фамилия, имя, отчество, телефон

From клиенты

Where фамилия like ‘M%’

Оператор Exists

Из таблицы товары вывести Наименование и цену тех товаров, количество продаж которых превышает 10(количество продаж отображается в таблице Продажи, которая связана с табл.Товары по коду товара)

Select Товары

From товары

Where exist (select [код товара]

From продажи

Where (продажи продано>10) and (Товары.[код товара]=продажи.[код товара]))

 

6) Оператор all

7) Например: из таблицы Товары выбрать товары которые имеют цену большую чем цена всех товаров, проданных в количестве более 10.

SELECT*

FROM товары

WHERE Цена>all(select продажи.цена

From продажи

WHERE продажи.продано>10)

Операторы объединения

a. Оператор and

Например: выбрать все записи из таблицы товары, цена которых>50, но <1000. Отобразить все поля этой таблицы.

Select*

From товары

Where (цена>50) and (цена <1000)

b. Оператор or

Например: выбрать все записи из таблицы Товары, цена которых меньше 50 или больше 1000. Отбразить все поля этой таблицы.

Select*

From товары

Where (цена<50)or(цена>1000)

c. Оператор отрицания not

Например: вывести всех клиентов, кроме тех, которые из беларуси или украины(только ФИО и СТРАНУ).

Select фамилия, Имя, отчество, Страна

From клиенты

Where (страна not in (‘Беларусь’, ’Украина’))

Упорядочение данных.

a. Order by

Select {*|all|distruct поле1, поле2,…,полеN}

From таблица1{,таблица2,…,таблицаN}

Where условие

Order by поле{asc|desc}

b. Например: сортировать записи таблицы товары по алфавиту поля

Наименование(вывести только поля категория, цена, наименование)

Select наименование, категория, цена

From товары

Order by наименование или

c. Сортировать все записи таблицы товары по убыванию цены(вывести только поля категория, цена, наименование)

Select наименование, категория, цена

From товары

Order by цена desc

Математические функции

Abs-модуль

Round-округление

SQR-корень

EXP-экспонента

Log-логарифм

Sin, cjs,tan-тригонометрические функции

IIF-логическая функция

Псевдонимы полей

Select{*|all|district поле1,…,полеN, выражение1 as псевдоним 1,…,ВыражениеN as псевдоним N}

From таблица1{,таблица2,…,таблица N}

Where условие

Например: подсчитать и вывести стоимость проданного товара. Вычисляемое поле назвать сума продажи.

Select[код товара], цена, заказанно, проданно, цена*продано as[сумма продажи]

From продажи

Функции агрегирования.

Count-подсчёт записей в таблице

Min-возвращает минимальное значение в столбце

Max-возвращает максимальное значение в стобце

Sum- возвращает сумму содержащийся в столбце значений

Avg-вычисляет среднее значение для содержащихся в столбце значений.

 

Например: подсчитать и вывести стоимость заказанного товара, стоимость проданного товара и стоимость товара, заказанного но ещё не проданного.

Select count (продано) as [Всего записей], min(продано)as min, max (продано) as max, sum (продано)as [всего продано

From продажи

Продажи данных.

 

Группировка данных

Select {*|all|distinct поле1,…,полеN}

From таблица1{,таблица2,..,таблицаN}

Where условие

Group by {поле1, поле2,..,полеN}

order by поле{ASC|DESC}

например: выбрать поля наименование и категория из таблицы товары. Результат выборки упорядочить по нпзначению категория.

Select наименование, категория

From товары

Group by категория, наименование

Пример: вставка 1ой строки в таблицу

Insert into поставщики(номер, наименование)

Values (4, спиридонов);значения которые мы вставляем

Обновление

Update поставщики; имя таблицы

Set наименование= «Пупкин»; служебное слово и Какое поле и на какое значение хотим поменять

Удаление строк в таблице

Delete

From поставщики

Where N=1

 

Группировка

select Nдетали, sum(количество)as кол-во

From поставки

Group by Nдетали

Номер детали Количество
   
   
   

Получить номера детали, сумарное количество которых превышает 400.

Having-условие группы

select Nдетали, sum(количество)as кол-во

From поставки

Group by Nдетали

Having sum(кол-во)>400

Подзапросы

Получить список поставщиков, статус которых меньше максимального статуса в таблице поставщиков

Select наименование

From поставщики

Where статус<(Select max (статус)

From поставщики)

Очень часто используется оператор in

Написать подзапрос которых выдает все данные о поставщиках которые поставляют деталь с номером 2. Через подзапрос с помощью оператора in

Select P.name,p.num,p.status

From p

Where p.num in (select (поставки)

From пост

where

Базы данных. Сетевая модель.

Тип связи определяется для 2х видов записи(предок и потомок).Экземпляр типов записи состоит из 1го экземпляра типов записи предков и упорядоченного набора одного или нескольких экземпляров типов записи потомков. Для данного типа записи L с типа записи Р и типом записи потомков С должны выполнятся 2 условия:

1) Каждый экз типа Р явл предком тока в одном экз L.

2) Каждый экз С явл потомком не более чем в одном экз L.

При орг сетевой модели наклад ограничение и возможны ситуации:

1) Тип записи потомка в одном типе записи L1 м.б. типом записи предка в другом экз типа связи L2.

2) Данный тип связи Р м.б. типом записи предка в любом числе типов связей.

3) Данный тип записи Р м.б. типом записи потомком в любом числе типов связей.

4) Может существовать любое число типов связей с одним и тем же типом записи предка и одним и тем же типом записи потомком.

Если l1 и L2 два типа записи с одним и тем же типом записи предка Р, и одним и тем же типом записи С отличаются правилами по которым образуются родство.

5) Тип записи Х и У м.б. предком и потомком в одной связи и потомком и предком в другой.

6) Предок и потомок м.б. одного типа записи.


Манипулирование данными:

1) найти конкретно запись в наборе однотипных записей.

2) Перейти от предка к первому потомку по некоторой связи.

3) Перейти к след потомку по некоторой связи.

4) Перейти от потомка к предку по некоторой связи.

5) Создать или уничтожить запись.

6) Модифицировать запись.

7) Включить, исключить в запись или перенести.

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

Реляционная модель.

Базируется на отношениях и их представлении таблицами. Предложена Коддом. Отношение обладает всеми свойствами множеств. Важнейшее свойство языков данной модели-возможность определять новое отношение, основываясь на существующих отношениях и используя реляционную алгебру и реляционные исчисления.

Реляционная модель данных. Элементы теории множеств.

Множество-правило для принадлежности.

Если В не равно А то В-собственное подмножество.

Функции над подмножествами.

1) Объединение.

2) Пересечение


3)Вычитание

 

Если класс объектов на которых определеляются различн множества которые обозначит юниверсал….

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 205; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.201.122.150 (0.19 с.)