Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Модели данных и базы данных

Содержание

План курсаТребования к моделям данных и средствам их хранения и обработки.Обзор ХМL.Реляционная модель данных.SQL.СУБД/программный интерфейс.
ПРОГРАММИРОВАНИЕ IIМодели данных и базы данных План курсаТребования к моделям данных и средствам их хранения и обработки.Обзор ХМL.Реляционная модель данных.SQL.СУБД/программный интерфейс. ЛитератураГарсиа-Молина Г., Ульман Дж.Д., Уидом Д. Системы баз данных. Полный курс. – ТребованияДолговременное (persistent) хранение больших объемов данных (логическая и физическая организация).Данные могут быть Транзакции. Свойство ACIDТранзакция (transaction, TR) —группа последовательныхопераций (добавление, модификация, выбор, удаление),которая представляет Пример: файловая системаУмеет хранить терабайты двоичных данных.Информация о типе файла (смысле хранимых eXtensible Markup LanguageРазработан World Wide Web Consortium (W3C). Версия 1.0 спецификации – XML – основные понятияЭлементы. Задают структуру документа. Документ обязан иметь единственный корневой DTD – IDTD - Document Type Definition (определение типов документа).Используется проверяющим XML-процессором DTD – IIЭлемент:  		- любое корректное содержимое  		- элемент не Пример DTD         ID XPath – основные понятияСредства описания подмножеств элементов/атрибутов/… XML-документа, удовлетворяющих заданным условиям.Рассматривая XML-документ XPath: описание пути. – описание пути, совпадающее собственно с текущей вершиной (контекстная XPath: описание точки отсчетаchild – ребенок контекстной вершины.descendant – все наследники контекстной Примеры описаний точек отсчета. –» self::node().. –» parent::node()// –» /descendant-or-self::node()/../title –» parent::node()/child::title.//author Примеры описаний предикатов//section[paragraph]//section[not(@title)]./chapter[3]/section[position()=2].//section[position()=1 or position()=last()]//*[local-name()=‘Student’ and @FirstName!=‘Уи’]./chapter[count(section/paragraph)!=0]//paragraph[id(‘P2345’)]//author[sum(book/@price) > 1000]//Student[starts-with(@LastName, ‘Я')] DOM – Document Object Model Levels 1-3, последняя версия 2004NodeDocumentElementAttr…NodeListNamedNodeMapDOMStringDOMErrorDOMException… Node интерфейс interface Node { // NodeType const unsigned short  ELEMENT_NODE NodeList и NamedNodeMap интерфейсыinterface NodeList { Node Document интерфейсinterface Document : Node { ... readonly attribute Element documentElement; Element и Attr интерфейсinterface Element : Node { readonly attribute DOMString DOMError интерфейсinterface DOMError { // ErrorSeverity const unsigned short  SEVERITY_WARNING Пример: C++ (VS v6.0)#include #import named_guidsusing namespace std;using namespace MSXML;void main(){	::CoInitialize(NULL);	IXMLDOMDocumentPtr doc;	doc.CreateInstance(CLSID_DOMDocument);			doc->loadXML(selectNodes("//*"); cout"> EntityRelationship-модель данных Peter Chen, 1976ER-модель – семантическая модель данных, т.е. модель данных, Элементы ER-моделиCущности – классы элементов моделируемой семантической области. Атрибуты – индивидуальные характерис- Пример ER-моделиGenderAutobio Типы связей в ER-моделяхЕсли каждый член множества А посредством связи R может Связи и ролиЕсли одна и та же сущность используется несколько раз вконтексте Многосторонние связи и  атрибуты связей Преобразование многосторонних связей в бинарныеActor-ofMovie-ofStudio-of-ActorProducing-StudioСоединяющее множество сущностей (connecting entity set) Подклассы в ER-моделиПодклассы (subclasses) служат для выделения в базовыхклассах (superclasses) сущностей, обладающихсобственными Моделирование ограниченийКлюч (key) – атрибут или подмножество атрибутов, уникальным образом определяющее экземпляр Ограничение области значенийТипы значений атрибутов (логические, диапазоны чисел, перечисления, длины строк) должны Ограничение единственностиНекоторый атрибут сущности может обладать не более чем единственным значением. Если Ограничение ссылочной целостностиЭто ограничение (всюду определенное – total) требует, чтобы значение, выступающее Ограничения общего видаЕдинственность МножественностьОбязательность Общего видапредставляется на ER-диаграмме Ключи в ER-моделяхКаждая сущность должна обладать ключом. Сущность без ключа вызывает вопросы Пример: ключи Слабые сущностиВ предметной области выделяется некоторое содержательное понятие – сущность с набором Выбор ключевых атрибутов для слабых сущностейПодмножества собственных атрибутов сущности E.Ключевые атрибуты сущностей, Пример: слабые сущностиБиологический вид именуется парой – именем рода, которому принадлежит вид, Реляционная модель данныхD1, D2, …, Dn – множества (атомарных) значений (domains).R ⊆ Преобразование ER-модели в реляционную. «Простая» частьStudentsFirstNameMember-ofLastNameGroupsYearLecturesTitleLecturerLesson-forGenderAutobioSpecialityПреобразовать каждую «простую» сущность (т.е. которые не Преобразование ER-модели в реляционную. Объединение отношенийИмеется сущность E, соединенная связью R типа Пример: объединение отношенийStudents(FirstName,LastName,Gender,     Autobio,Name,Year)Groups(Name,Year,Speciality)MemberOf(FirstName,LastName,Name,Year) Преобразование ER-модели в реляционную. Слабые сущностиЕсли W – слабая сущность, отношение для Пример: преобразование слабых сущностейGenera(Name)Species(Name, NameOfGenera) Преобразование ER-модели в реляционную ISA в стиле «сущность-связь»Для каждой сущности в иерархии Преобразование ER-модели в реляционную ISA в объектно-ориентированном стиле Метод состоит в перечислении Все сущности иерархии объединяются в одно отношение.При этом если для некоторого кортежа Преобразования отношений в реляционной моделиФункциональная зависимость между атрибутами отношения: если двакортежа отношения Замыкание множества атрибутовЗамыканием (closure) {Ai}+ множества атрибутов {Ai}обусловленным множеством функциональных зависимостей Sназывается Ключи и суперключи отношенийМножество атрибутов {Ai} называется ключом отношения R, если:эти атрибуты Аномалии отношенийИзбыточность (redundancy) данных.Аномалии изменения (update anomalies).Аномалии удаления (delete anomalies). Декомпозиция отношенийОтношения S(s1,…,sn) и T(t1,…,tm) являются декомпозицией отношения R(r1,…,rk), если: {r1,…,rk}={s1,…,sn}⋃{t1,…,tm}.кортежи отношений Нормальная форма Бойса-КоддаОтношение R удовлетворяет BCNF тогда и только тогда, когда для Пример: нормализованные отношенияActorsNormMoviesStarsIn Третья нормальная формаBCNF иногда является слишком строгим условием и требует декомпозиции даже Реляционная алгебраПеременные, соответствующие неограниченным отношениям, и константы, являющиеся конечными отношениями.Операции:теоретико-множественные операции: объединение Пример выбора и проекцииπActorName(σYear>1976(Movies))σYear>1976(πTitle,Year(Movies)) Пример декартова произведения и естественного соединенияSTS×T – декартово произведениеS⋈T – естественное соединение Тэта-соединение (Θ-join):  S ⋈Θ T = σΘ(S×T).Внешние соединения (outerjoins, left/right): SQL – Structured Query Language первая версия – конец 1970-х (IBM) Создание/удаление/изменение таблицТипы данных SQL:INT/INTEGER, SHORTINTCHAR(n), VARCHAR(n)BOOLEANFLOAT/REAL, DOUBLE PECISION, DECIMAL(n,d)/NUMERICDATE, TIME, TIMESTAMPBLOB/MEMOCREATE TABLE Добавление/удаление/обновление данныхINSERT INTO Movies(Title,Year,ActorName) VALUES(’Titanic’,1997,’L. Di Caprio’);INSERT INTO MoviesVALUES(’Titanic’,1997,240,’color’,’Universal’, Выборка данных IДальнейшая обработка пользователем.Использование в проверке условий.Использование при добавлении данных.Создание временных/виртуальных Выборка данных IIMovies(Title,Year,Length,FilmType,Studio)Actors(Name,Address,Gender,Birthdate,Photo)Studios(Name,Address)StarsIn(Title,Year,Name)SELECT DISTINCT    Movies.Title, Std.Name AS StudioName, A.Name Выборка данных IIISELECT Address Выборка данных IVSELECT Address Значения NULL и UNKNOWNNULL используется, когда:Значение не является известным на данный момент,Значение Операторы агрегированияSUM, AVG, MIN, MAX – операторы над числовыми атрибутами (сумма, среднее, Соединения в SQLT1 CROSS JOIN T2 – декартово произведение таблиц.T1 NATURAL JOIN Описание схемных ограничений – ключиОбъявление ключей с помощью UNIQUEможет быть несколько;атрибуты, входящие Пример: C++ (VS v6.0)CDatabase db;   CRecordset rs(&db);	db.Open(NULL);db.ExecuteSQL(
Слайды презентации

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

План курсаТребования к моделям данных и средствам их хранения и обработки.Обзор ХМL.Реляционная модель данных.SQL.СУБД/программный интерфейс.

хранения и обработки.
Обзор ХМL.
Реляционная модель данных.
SQL.
СУБД/программный интерфейс.


Слайд 3 Литература
Гарсиа-Молина Г., Ульман Дж.Д., Уидом Д. Системы баз

ЛитератураГарсиа-Молина Г., Ульман Дж.Д., Уидом Д. Системы баз данных. Полный курс.

данных. Полный курс. – М.: Издательский дом “Вильямс”. 2003.
Грабер

М. Введение в SQL. – M.: Лори, 1996.
Дейт К. Введение в системы баз данных. – М.: Наука, 1980. Имеется 6-е и 7-е издание, – М.: Издательский дом “Вильямс”, 1999 и 2001.
Технологии XML. World Wide Web Consortium Home Page. http://www.w3.org.

Слайд 4 Требования
Долговременное (persistent) хранение больших объемов данных (логическая и

ТребованияДолговременное (persistent) хранение больших объемов данных (логическая и физическая организация).Данные могут

физическая организация).
Данные могут быть типизированы и структурированы. Необходимо иметь

средства для формального описания и программного использования этой информации о данных (модель/схема данных).
Эффективное манипулирование данными (добавление, модификация, выбор, удаление), сохраняющее корректность, в том числе, в конкурентной среде исполнения. Реализуется СУБД (DBMS).
Программный интерфейс доступа к данным, в том числе, конкурентные средства доступа. Реализуется прикладными программными интерфейсами (API) для разных языков программирования.

Слайд 5 Транзакции. Свойство ACID
Транзакция (transaction, TR) —группа последовательных
операций (добавление,

Транзакции. Свойство ACIDТранзакция (transaction, TR) —группа последовательныхопераций (добавление, модификация, выбор, удаление),которая

модификация, выбор, удаление),
которая представляет собой логическую единицу работы с
данными.
Атомарность

(аtomicity) – TR либо выполняется полностью, либо не выполняется совсем.
Согласованность (consistency) – результат выполнения TR не нарушает ограничений, налагаемых моделью данных.
Изолированность (isolation) – TR выполняется так, как будто другие TRs при этом не выполняются. В частности, другие исполняемые в этот же промежуток времени TRs не видят промежуточных результатов этой TR.
Устойчивость (durability) – результат выполненной TR не должен быть утрачен ни при каких обстоятельствах (включая физические причины, например, отключение электричества).

Слайд 6 Пример: файловая система
Умеет хранить терабайты двоичных данных.
Информация о

Пример: файловая системаУмеет хранить терабайты двоичных данных.Информация о типе файла (смысле

типе файла (смысле хранимых в нем данных) скудна. Связи

между элементами данных не поддерживаются.
В основном управлением занимается менеджер файловой системы ОС. Транзакционность по минимуму.
API – текстовые/бинарные операторы ввода/вывода и/или библиотечные функции языков программирования. Параллельная работа возможна в ограниченном виде.

Слайд 7 eXtensible Markup Language
Разработан World Wide Web Consortium (W3C).

eXtensible Markup LanguageРазработан World Wide Web Consortium (W3C). Версия 1.0 спецификации

Версия 1.0 спецификации – 1998 год. Вторая редакция версии

1.1 спецификации – 2006 год. XML – упрощенная версия SGML.
Стандарт для разработки языков разметки:
HTML/xhtml – язык разметки для гипертекста;
MathML – язык разметки математических формул;
CML – язык описания химических соединений;
TTML – язык описания данных для составления расписаний...
Определяет стандартные механизмы обработки.
Сопутствующие стандарты и технологии: DTD/XSchema (модель данных), XPath (адресация элементов документа), XSL/XSLT (преобразование xml-документов), XQuery (организация запросов к документам), DOM (объектное представление документа и доступ к нему)...

Слайд 8 XML – основные понятия
Элементы. Задают структуру документа. Документ

XML – основные понятияЭлементы. Задают структуру документа. Документ обязан иметь единственный

обязан иметь единственный корневой элемент. Элемент может не иметь

атрибутов и/или вложенных элементов.
Атрибуты. Связаны с элементами и описывают их свойства. Могут иметь умолчательные значения.
Сущности. Существуют предопределенные, могут определяться вне документа.
Символьные данные. Произвольный текст.
Модель/схема данных.
Инструкции обработки.

Слайд 9


Я родилась 12 февраля в

/>

FirstName="Анна" LastName="Иванова" Gender="true">
Я родилась 12 февраля в городе Кимры.



< > & " '
ё















Пример XML-данных


Слайд 10 DTD – I
DTD - Document Type Definition (определение

DTD – IDTD - Document Type Definition (определение типов документа).Используется проверяющим

типов документа).
Используется проверяющим XML-процессором (validating processor) для проверки структуры

документа, множества значений атрибутов и определения сущностей.
Документ может как содержать DTD в самом себе, так и ссылаться на внешний файл:

Слайд 11 DTD – II
Элемент: - любое корректное содержимое

DTD – IIЭлемент: 		- любое корректное содержимое 		- элемент не может

EMPTY> - элемент не может иметь вложенных элементов

(#PCDATA)> - элемент может содержать только текст - любая последовательность (в том числе и пустая) из данных элементов в любом порядке - последовательность элементов и групп элементов в заданном порядке
Атрибут: >
Сущности:


Слайд 12 Пример DTD

Пример DTD     ID   ID #REQUIRED

ANY… возможно, но плохо -->

>






ID ID #REQUIRED
Name CDATA #REQUIRED>

ID ID #REQUIRED
FirstName CDATA #IMPLIED
LastName CDATA #REQUIRED
Gender (true|false) “true”>

Title CDATA #REQUIRED
Lecturer CDATA #IMPLIED>

GroupID IDREF #REQUIRED>

Слайд 13 XPath – основные понятия
Средства описания подмножеств элементов/атрибутов/… XML-документа,

XPath – основные понятияСредства описания подмножеств элементов/атрибутов/… XML-документа, удовлетворяющих заданным условиям.Рассматривая

удовлетворяющих заданным условиям.
Рассматривая XML-документ как дерево, состоящее из узлов

разного типа, XPath оперирует понятием пути и шага, который в свою очередь состоит из точки отсчета, теста узла и предиката, проверяющего свойства узла. /University//parent::Group[position()=1 or @LastName=‘Ли’]
Имеются библиотечные функции, манипулирующие с числами, строками, .... //Student[local-name()!=‘Student’]

Слайд 14 XPath: описание пути
. – описание пути, совпадающее собственно

XPath: описание пути. – описание пути, совпадающее собственно с текущей вершиной

с текущей вершиной (контекстная вершина).
.. – описание пути к

отцу текущей вершины.
/ – описание пути до детей текущей вершины.
// – путь до всех наследников текущей вершины.
Примеры:
/* или /University – корневой элемент документа.
//* – все элементы документа.
/University/Lectures//GroupItem
./../* – все братья текущего элемента и он сам.

Слайд 15 XPath: описание точки отсчета
child – ребенок контекстной вершины.
descendant

XPath: описание точки отсчетаchild – ребенок контекстной вершины.descendant – все наследники

– все наследники контекстной вершины.
parent – отец контекстной вершины

(если она существует).
ancestor – все предшественники контекстной вершины.
following-sibling – все следующие братья контекстной вершины.
preceding-sibling – все предшествующие братья контекстной вершины.
following – все следующие братья и их наследники.
preceding – все предшествующие братья и их наследники.
attribute – атрибуты контекстной вершины.
self – собственно сама контекстная вершина.
descendant-or-self – ...
ancestor-or-self – ...
ЗАМЕЧАНИЕ: ancestor, descendant, following, preceding и self – являются разбиением документа, т.е. множества, определяемые ими, не пересекаются, а их объединение дает весь документ.

Слайд 16 Примеры описаний точек отсчета
. –» self::node()
.. –» parent::node()
//

Примеры описаний точек отсчета. –» self::node().. –» parent::node()// –» /descendant-or-self::node()/../title –»

–» /descendant-or-self::node()/
../title –» parent::node()/child::title
.//author –» self::node()/descendant-or-self::node()/child::author
chapter/section –» child::chapter/child::section
//@ID –»

/descendant-or-self::node()/attribute::ID
following-sibling::*[attribute::Name=‘Петя’] –» following-sibling::node()[@Name=‘Петя’]

Слайд 17 Примеры описаний предикатов
//section[paragraph]
//section[not(@title)]
./chapter[3]/section[position()=2]
.//section[position()=1 or position()=last()]
//*[local-name()=‘Student’ and @FirstName!=‘Уи’]
./chapter[count(section/paragraph)!=0]
//paragraph[id(‘P2345’)]
//author[sum(book/@price) >

Примеры описаний предикатов//section[paragraph]//section[not(@title)]./chapter[3]/section[position()=2].//section[position()=1 or position()=last()]//*[local-name()=‘Student’ and @FirstName!=‘Уи’]./chapter[count(section/paragraph)!=0]//paragraph[id(‘P2345’)]//author[sum(book/@price) > 1000]//Student[starts-with(@LastName, ‘Я')]

1000]
//Student[starts-with(@LastName, ‘Я')]


Слайд 18 DOM – Document Object Model Levels 1-3, последняя версия

DOM – Document Object Model Levels 1-3, последняя версия 2004NodeDocumentElementAttr…NodeListNamedNodeMapDOMStringDOMErrorDOMException…

2004
Node
Document
Element
Attr

NodeList
NamedNodeMap
DOMString
DOMError
DOMException


Слайд 19 Node интерфейс
interface Node {
// NodeType
const

Node интерфейс interface Node { // NodeType const unsigned short ELEMENT_NODE

unsigned short ELEMENT_NODE = 1;
const

unsigned short ATTRIBUTE_NODE = 2;
...
const unsigned short COMMENT_NODE = 8;
const unsigned short DOCUMENT_NODE = 9;
...

readonly attribute DOMString nodeName;
attribute DOMString nodeValue;
readonly attribute unsigned short nodeType;
readonly attribute Node parentNode;
readonly attribute NodeList childNodes;
readonly attribute Node firstChild;
readonly attribute Node lastChild;
readonly attribute Node previousSibling;
readonly attribute Node nextSibling;
readonly attribute NamedNodeMap attributes;
readonly attribute Document ownerDocument;
Node insertBefore(in Node newChild, in Node refChild);
Node replaceChild(in Node newChild, in Node oldChild);
Node removeChild(in Node oldChild);
Node appendChild(in Node newChild);
boolean hasChildNodes();
Node cloneNode(in boolean deep);
...
};

Слайд 20 NodeList и NamedNodeMap интерфейсы
interface NodeList {
Node

NodeList и NamedNodeMap интерфейсыinterface NodeList { Node    item(in

item(in unsigned long

index);
readonly attribute unsigned long length;
};


interface NamedNodeMap {
Node getNamedItem(in DOMString name);
Node setNamedItem(in Node arg);
Node removeNamedItem(in DOMString name);
Node item(in unsigned long index);
readonly attribute unsigned long length;
...
};

Слайд 21 Document интерфейс
interface Document : Node { ... readonly attribute Element

Document интерфейсinterface Document : Node { ... readonly attribute Element documentElement;

documentElement; Element createElement(in DOMString tagName); Comment createComment(in DOMString data);

Attr createAttribute(in DOMString name); EntityReference createEntityReference(in DOMString name); ... NodeList getElementsByTagName(in DOMString tagname); Element getElementById(in DOMString elementId); readonly attribute DOMString xmlEncoding; attribute boolean xmlStandalone; attribute DOMString xmlVersion; attribute DOMString documentURI; ...
};

Слайд 22 Element и Attr интерфейс
interface Element : Node {

Element и Attr интерфейсinterface Element : Node { readonly attribute DOMString

readonly attribute DOMString tagName;
DOMString getAttribute(in DOMString name);

void setAttribute(in DOMString name, in DOMString value);
void removeAttribute(in DOMString name);
...
Attr getAttributeNode(in DOMString name);
Attr setAttributeNode(in Attr newAttr);
Attr removeAttributeNode(in Attr oldAttr);
...
void setIdAttribute(in DOMString name, in boolean isId);
void setIdAttributeNode(in Attr idAttr, in boolean isId);
...
boolean hasAttribute(in DOMString name);

NodeList getElementsByTagName(in DOMString name);
...
};


interface Attr : Node {
readonly attribute DOMString name;
readonly attribute boolean specified;
attribute DOMString value;
readonly attribute Element ownerElement;
readonly attribute TypeInfo schemaTypeInfo;
readonly attribute boolean isId;
};

Слайд 23 DOMError интерфейс
interface DOMError {

// ErrorSeverity
const unsigned

DOMError интерфейсinterface DOMError { // ErrorSeverity const unsigned short SEVERITY_WARNING

short SEVERITY_WARNING = 1;
const unsigned

short SEVERITY_ERROR = 2;
const unsigned short SEVERITY_FATAL_ERROR = 3;

readonly attribute unsigned short severity;
readonly attribute DOMString message;
readonly attribute DOMString type;
readonly attribute DOMObject relatedException;
readonly attribute DOMObject relatedData;
readonly attribute DOMLocator location;
};

Слайд 24 Пример: C++ (VS v6.0)
#include
#import named_guids
using namespace

std;
using namespace MSXML;

void main()
{
::CoInitialize(NULL);
IXMLDOMDocumentPtr doc;
doc.CreateInstance(CLSID_DOMDocument);
doc->loadXML("dddeee");
coutselectSingleNode("//b");
coutdocumentElement->selectNodes("//*");
cout

{
cout<<(char*)n->GetnodeName()< n=n->nextSibling;
}
}

Слайд 25 EntityRelationship-модель данных Peter Chen, 1976
ER-модель – семантическая модель данных,

EntityRelationship-модель данных Peter Chen, 1976ER-модель – семантическая модель данных, т.е. модель

т.е. модель данных, главным предназначением которой удобное и адекватное

моделирование смысла моделируемой предметной области (высокоуровневое моделирование).
В общем случае она не описывает способов хранения данных и средств манипуляции ими.
Разработаны формальные методы преобразования ER-моделей в другие модели данных.
Преобразования поддерживаются программными средствами.

Слайд 26 Элементы ER-модели
Cущности – классы элементов моделируемой семантической области.
Атрибуты

Элементы ER-моделиCущности – классы элементов моделируемой семантической области. Атрибуты – индивидуальные

– индивидуальные характерис- тики сущностей.
Отношения – описания взаимодействий моделируемых

сущностей.
Отношение общее-частное

Students

FirstName

Member-of

isa


Слайд 27 Пример ER-модели
Gender
Autobio

Пример ER-моделиGenderAutobio

Слайд 28 Типы связей в ER-моделях
Если каждый член множества А

Типы связей в ER-моделяхЕсли каждый член множества А посредством связи R

посредством связи R может быть связан не более чем

с одним членом множества B, то R является связью типа «многие к одному» (many-one relationship). Эта же связь, рассматриваемая в обратном направлении, имеет тип «один ко многим».
Если связь R в обоих направлениях (т.е. от A к B и от B к A ) является связью «многие к одному», то это связь имеет тип «один к одному» (one-one relationship).
Если связь R ни в одном из направлений не является связью «многие к одному», то эта связь имеет тип «многие ко многим» (many-many relationship).

Слайд 29 Связи и роли
Если одна и та же сущность

Связи и ролиЕсли одна и та же сущность используется несколько раз

используется несколько раз в
контексте одной и той же связи,

то говорят, что разные
концы связи описывают разные роли, в которых
выступает данная сущность в этом случае.

Слайд 30 Многосторонние связи и атрибуты связей

Многосторонние связи и атрибуты связей

Слайд 31 Преобразование многосторонних связей в бинарные
Actor-of
Movie-of
Studio-of-Actor
Producing-Studio
Соединяющее множество сущностей (connecting

Преобразование многосторонних связей в бинарныеActor-ofMovie-ofStudio-of-ActorProducing-StudioСоединяющее множество сущностей (connecting entity set)

entity set)


Слайд 32 Подклассы в ER-модели
Подклассы (subclasses) служат для выделения в

Подклассы в ER-моделиПодклассы (subclasses) служат для выделения в базовыхклассах (superclasses) сущностей,

базовых
классах (superclasses) сущностей, обладающих
собственными атрибутами и/или связями. Используется
для моделирования

отношения «общее-частное»

Слайд 33 Моделирование ограничений
Ключ (key) – атрибут или подмножество атрибутов,

Моделирование ограниченийКлюч (key) – атрибут или подмножество атрибутов, уникальным образом определяющее

уникальным образом определяющее экземпляр сущности среди множества других.
Ограничение единственности

(single-value constraint) – атрибут(ы)/связ(ь/и) в некотором контексте должны иметь единственное значение или не иметь его вообще.
Ссылочная целостность (referential integrity constraint) – тот, на кого кто-то ссылается, должен обязательно существовать.
Ограничение области значений (domain constraint) – значение атрибута принадлежит определенной области значений.
Ограничение общего вида (general constraint).

Слайд 34 Ограничение области значений
Типы значений атрибутов (логические, диапазоны чисел,

Ограничение области значенийТипы значений атрибутов (логические, диапазоны чисел, перечисления, длины строк)

перечисления, длины строк) должны адекватно представлять моделируемую предметную область.

Вводимые ограничения должны нести семантическую нагрузку.
ER-модель не имеет специальных средств представления этих ограничений. Допускаются произвольные сопроводительные тексты.

Слайд 35 Ограничение единственности
Некоторый атрибут сущности может обладать не более

Ограничение единственностиНекоторый атрибут сущности может обладать не более чем единственным значением.

чем единственным значением. Если допускается отсутствие значения атрибута, то

появляется необходимость представлять этот факт каким-либо образом (выделенное «нулевое» значение). Наоборот, если некоторый атрибут обязан всегда иметь осмысленное значение (например, атрибут, входящий в ключ), то «нулевое» значение для него недопустимо.
Связь R типа many-one между сущностями E1 и E2 демонстрирует ограничение уникальности, указывающее, что для любого экземпляра E1, если эта связь существует, соответствует не более одного экземпляра E2.

Слайд 36 Ограничение ссылочной целостности
Это ограничение (всюду определенное – total)

Ограничение ссылочной целостностиЭто ограничение (всюду определенное – total) требует, чтобы значение,

требует, чтобы значение, выступающее в некоторой роли, имело в

точности одно значение. Моделирует ситуацию отсутствия «висячих» (т.е. не определенных в данном контексте) ссылок.
Если добавляется экземпляр A некоторой сущности, который обязан ссылаться на что-то (экземпляр B той же самой или другой сущности), то это что-то обязано уже существовать.
Экземпляр B не может быть удален, пока не удалены все ссылающиеся на него экземпляры. Если удаление B обязательно, то должны быть удалены и все ссылающиеся на него экземпляры.

Слайд 37 Ограничения общего вида
Единственность
Множественность
Обязательность
Общего вида
представляется на ER-диаграмме

Ограничения общего видаЕдинственность МножественностьОбязательность Общего видапредставляется на ER-диаграмме

Слайд 38 Ключи в ER-моделях
Каждая сущность должна обладать ключом. Сущность

Ключи в ER-моделяхКаждая сущность должна обладать ключом. Сущность без ключа вызывает

без ключа вызывает вопросы о правильности модели предметной области.
Ключ

может состоять из нескольких атрибутов.
Сущность может обладать несколькими ключами. Тем не менее целесообразно выделять один – первичный ключ (primary key) и далее полагать, что эта сущность обладает единственным ключом.
Если некоторая сущность участвует в иерархии связей isa, необходимо гарантировать, чтобы корневая сущность обладала всеми атрибутами, необходимыми для формирования ключа, и ключ для каждой сущности из иерархии может быть определен на основе «корневого» ключа.

Слайд 39 Пример: ключи

Пример: ключи

Слайд 40 Слабые сущности
В предметной области выделяется некоторое содержательное понятие

Слабые сущностиВ предметной области выделяется некоторое содержательное понятие – сущность с

– сущность с набором атрибутов. Однако оказывается, что на

основе только этих атрибутов нельзя сформировать ключ для этой сущности. А с использованием атрибутов другой сущности (называемой владельцем) можно. Такая «невыразительная» сущность называется слабой.
Ограничения:
Между слабой сущностью и сущностью, используемой для ключа, должно быть отношение many-one.
Это отношение должно быть обязательным (total).
Пример: связывающее множество сущностей обычно не имеет атрибутов. Их ключи определяются на основе сущностей, которые они связывают.

Слайд 41 Выбор ключевых атрибутов для слабых сущностей
Подмножества собственных атрибутов

Выбор ключевых атрибутов для слабых сущностейПодмножества собственных атрибутов сущности E.Ключевые атрибуты

сущности E.
Ключевые атрибуты сущностей, которые могут быть достигнуты посредством

связей, соединяющих E с другими сущностями; такие связи называются поддерживающими (supporting relationships) для E. Они должны удовлетворять следующим условиям (ведут к сущности F):
это бинарная связь типа many-one, ведущая от E к F и реализующая ограничения ссылочной целостности;
атрибуты F, используемые для построения ключа E, должны быть ключом для F;
если F само по себе является слабой сущностью, то для него аналогично отыскиваются его поддерживающее множество связей.
От E к F может вести несколько различных поддерживающих связей и каждая может поставлять свою копию ключевых атрибутов F. Таким образом некоторый экземпляр E может иметь ключ, порожденный разными экземплярами F.

Слайд 42 Пример: слабые сущности
Биологический вид именуется парой – именем

Пример: слабые сущностиБиологический вид именуется парой – именем рода, которому принадлежит

рода,
которому принадлежит вид, и собственно именем
вида. Пример: Homo

erectus, Homo habilis, Homo
sapiens – названия видов рода «человек»
(сответственно человек прямоходящий, человек
умелый, человек разумный). Имя вида может быть
неуникальным.

Слайд 43 Реляционная модель данных
D1, D2, …, Dn – множества

Реляционная модель данныхD1, D2, …, Dn – множества (атомарных) значений (domains).R

(атомарных) значений (domains).
R ⊆ D1× D2 × … ×

Dn – отношение (relation), подмножество произведения доменов.
Кортеж – отдельный элемент подмножества, определяемого отношением R.

Схема данных:
Students(FirstName,LastName,Gender,Age) Groups(Number,Year,Speciality) MemberOf(FirstName,LastName,Number,Year)


Слайд 44 Преобразование ER-модели в реляционную. «Простая» часть
Students
FirstName
Member-of
LastName
Groups
Year
Lectures
Title
Lecturer
Lesson-for
Gender
Autobio
Speciality
Преобразовать каждую «простую» сущность

Преобразование ER-модели в реляционную. «Простая» частьStudentsFirstNameMember-ofLastNameGroupsYearLecturesTitleLecturerLesson-forGenderAutobioSpecialityПреобразовать каждую «простую» сущность (т.е. которые

(т.е. которые не являются слабыми и не участвуют в

иерархии isa) в отношение (таблицу) с тем же набором атрибутов.
Преобразовать каждую «простую» связь (не-isa) в отношение, атрибутами которого являются ключи сущностей, соединяемых этой связью. Добавить собственные атрибуты связи в это отношение

Students(FirstName,LastName,Gender,Autobio)
Groups(Name,Year,Speciality)
Lectures(Title,Lecturer)
MemberOf(FirstName,LastName,Name,Year)
LessonFor(Name,Year,Tite)

Name


Слайд 45 Преобразование ER-модели в реляционную. Объединение отношений
Имеется сущность E, соединенная

Преобразование ER-модели в реляционную. Объединение отношенийИмеется сущность E, соединенная связью R

связью R типа many-one с
сущностью F в направлении

от E к F. Можно выполнить
объединение отношений, соответствующих E и R. Новое
отношение получается объединением следующих
атрибутов:
все атрибуты E;
ключевые атрибуты F;
собственные атрибуты связи R.
Если некоторый экземпляр E не имеет связи с экземплярами
R, то атрибуты из пунктов 2 и 3 принимают значение NULL.
Основное соображение в пользу преобразования –
экономия памяти и эффективность манипулирования.

Слайд 46 Пример: объединение отношений
Students(FirstName,LastName,Gender,
Autobio,Name,Year)
Groups(Name,Year,Speciality)
MemberOf(FirstName,LastName,Name,Year)

Пример: объединение отношенийStudents(FirstName,LastName,Gender,   Autobio,Name,Year)Groups(Name,Year,Speciality)MemberOf(FirstName,LastName,Name,Year)

Слайд 47 Преобразование ER-модели в реляционную. Слабые сущности
Если W – слабая

Преобразование ER-модели в реляционную. Слабые сущностиЕсли W – слабая сущность, отношение

сущность, отношение для W строится следующим образом:
включаются все атрибуты

W;
включаются все атрибуты поддерживающих связей для W;
включаются все ключевые атрибуты каждого множества сущностей, соединенных с W поддерживающими связями.
Любые поддерживающие связи для W игнорируются.

Слайд 48 Пример: преобразование слабых сущностей
Genera(Name)
Species(Name, NameOfGenera)

Пример: преобразование слабых сущностейGenera(Name)Species(Name, NameOfGenera)

Слайд 49 Преобразование ER-модели в реляционную ISA в стиле «сущность-связь»
Для каждой

Преобразование ER-модели в реляционную ISA в стиле «сущность-связь»Для каждой сущности в

сущности в иерархии создается отношение. Если сущность не
является корневой,

соответствующее ей отношение, помимо собственных
атрибутов, должно содержать ключевые атрибуты корневого множества (они
также участвуют в связывании этой сущности с другими)

Actors

Name

Address

Movies

Title

Year

Length

Cartoons

Voices

isa

Peplum

isa

Epoque

Movies(Title,Year,Length) Actors(Name,Address)
Cartoons(Title,Year)
Peplum(Title,Year,Epoque) Voices(Title,Year,ActorName)


Слайд 50 Преобразование ER-модели в реляционную ISA в объектно-ориентированном стиле
Метод

Преобразование ER-модели в реляционную ISA в объектно-ориентированном стиле Метод состоит в

состоит в перечислении всевозможных
поддеревьев ER-диаграммы, включающих корневую
сущность, на основе

которых создаются отношения,
представляющих сущности. Они обладают всеми
атрибутами поддерева.

Movies(Title,Year,Length)
MoviesCartoons(Title,Year,Length)
MoviesPeplum(Title,Year,Length,Epoque)
MoviesCartoonsPeplum(Title,Year,Length,Epoque)
Actors(Name,Address)
Voices(Title,Year,ActorName)

Слайд 51 Все сущности иерархии объединяются в одно отношение.
При этом

Все сущности иерархии объединяются в одно отношение.При этом если для некоторого

если для некоторого кортежа отношения
(экземпляра некоторой сущности) значение какого-то
атрибута

не определено, оно представляется NULL.



Movies(Title,Year,Length,Epoque)
Actors(Name,Address)
Voices(Title,Year,ActorName)

Преобразование ER-модели в реляционную ISA в NULL-стиле


Слайд 52 Преобразования отношений в реляционной модели
Функциональная зависимость между атрибутами

Преобразования отношений в реляционной моделиФункциональная зависимость между атрибутами отношения: если двакортежа

отношения: если два
кортежа отношения совпадают в атрибутах A1,A2,…,An, то

они
должны совпадать и в атрибутах В1,В2, …,Вm (функционально их
обуславливают A1,A2, …,An → В1,В2,…,Вm).

Movies(Title,Year,Length,StudioName,Actor)
Title Year → Length
Title Year → StudioName
?
Title Year → Actor



Множество функциональных зависимостей S следует из множества ФЗ T, если каждый экземпляр отношения, удовлетворяющий всем ФЗ T, также удовлетворяет всем ФЗ S.
Множества функциональных зависимостей S и T являются эквивалентными, если они следуют одно из другого и наоборот.

Слайд 53 Замыкание множества атрибутов
Замыканием (closure) {Ai}+ множества атрибутов {Ai}
обусловленным

Замыкание множества атрибутовЗамыканием (closure) {Ai}+ множества атрибутов {Ai}обусловленным множеством функциональных зависимостей

множеством функциональных зависимостей S
называется множество атрибутов {Bi}, такое что

ФЗ A→В
следует из ФЗ S.
Алгоритм построения замыкания:
Инициализировать переменную X множеством {Ai}.
Если существует ФЗ B1,…,Bn → C из S, такая, что {B1,…,Bn}⊆X, но C∉X, то добавить C в X.
Выполнять шаг 2, пока множество X не стабилизируется.
Пример:
Отношение имеет множество атрибутов A, B, C, D, E, F и
удовлетворяет ФЗ A,В→C, В,C→A,D, D→E, C,F→B.
Замыкание {A,B}+={A,B,C,D,E}
Свойство:
ФЗ A1,A2, …,An → В1,В2, …,Вm следует из ФЗ S, тогда и только
тогда В1,В2, …,Вm ∉ {A1,A2, …,An} обусловленным ФЗ S.

Слайд 54 Ключи и суперключи отношений
Множество атрибутов {Ai} называется ключом

Ключи и суперключи отношенийМножество атрибутов {Ai} называется ключом отношения R, если:эти

отношения R, если:
эти атрибуты функционально обуславливают все остальные атрибуты;

совпадение двух кортежей отношения R в этих атрибутах невозможно;
ни одно из подмножеств {Ai} не обуславливает функционально все остальные атрибуты отношения R.
Суперключ отношения – всякое множество атрибутов, содержащее в качестве подмножества ключ отношения.
Чтобы определить, формирует ли множество атрибутов {Ai} ключ отношения, надо проверить совпадает ли {Ai}+ относительно известного Вам множества ФЗ со всем множеством атрибутов отношения, а любое подмножество {Ai}+ – нет.

Слайд 55 Аномалии отношений
Избыточность (redundancy) данных.
Аномалии изменения (update anomalies).
Аномалии удаления

Аномалии отношенийИзбыточность (redundancy) данных.Аномалии изменения (update anomalies).Аномалии удаления (delete anomalies).

(delete anomalies).


Слайд 56 Декомпозиция отношений
Отношения S(s1,…,sn) и T(t1,…,tm) являются декомпозицией отношения

Декомпозиция отношенийОтношения S(s1,…,sn) и T(t1,…,tm) являются декомпозицией отношения R(r1,…,rk), если: {r1,…,rk}={s1,…,sn}⋃{t1,…,tm}.кортежи

R(r1,…,rk), если:
{r1,…,rk}={s1,…,sn}⋃{t1,…,tm}.
кортежи отношений S и T являются проекциями

всех кортежей отношения R на их множества атрибутов (на {s1,…,sn} и {t1,…,tm} соответственно).

Слайд 57 Нормальная форма Бойса-Кодда
Отношение R удовлетворяет BCNF тогда и

Нормальная форма Бойса-КоддаОтношение R удовлетворяет BCNF тогда и только тогда, когда

только тогда, когда для R существует нетривиальная ФЗ A1,A2,

…,An → В1,В2, …,Вm (т.е. ∃ Вk∉ {A1,A2, …,An}) такая, что множество атрибутов {A1,A2, …,An} является суперключом для R.
Отношение, удовлетворяющее BCNF, не содержит аномалий.
Отношение, содержащее только два атрибута, удовлетворяет BCNF.

Пример:
{Title,Year,ActorName} – ключ исходного отношения. Однако
это отношение не удовлетворяет BCNF, т.к. содержит ФЗ
Title,Year→Length,FilmType,StudioName, у которой левая часть
не является суперключом. Первое отношение декомпозиции,
имеющее в качестве ключа {Title,Year}, удовлетворяет BCNF.

Слайд 58 Пример: нормализованные отношения
Actors
NormMovies
StarsIn

Пример: нормализованные отношенияActorsNormMoviesStarsIn

Слайд 59 Третья нормальная форма
BCNF иногда является слишком строгим условием

Третья нормальная формаBCNF иногда является слишком строгим условием и требует декомпозиции

и требует декомпозиции даже в тех случаях, когда наличие

некоторых «ненормализованных» ФЗ целесообразно.
Отношение R удовлетворяет 3NF, если всякий раз, когда для R существует нетривиальная ФЗ A1,A2, …,An → В, множество атрибутов {A1,A2, …,An} является суперключом для R либо В является членом некоторого ключа.
Если отношение R удовлетворяет 3NF, но не удовлетворяет BCNF, существует некоторая вероятность, что отношение будет содержать избыточные данные.

Слайд 60 Реляционная алгебра
Переменные, соответствующие неограниченным отношениям, и константы, являющиеся

Реляционная алгебраПеременные, соответствующие неограниченным отношениям, и константы, являющиеся конечными отношениями.Операции:теоретико-множественные операции:

конечными отношениями.
Операции:
теоретико-множественные операции: объединение (union), пересечение (intersection) и разность

(difference);
операции удаления частей отношения: выбор (selection) и проекции (projection);
операции сочетания кортежей отношений: декартово произведение (Cartesian product) и различные виды соединений (joins);
операции переименования: атрибутов и отношений.
Агрегирование, группировка и сортировка данных

Слайд 61 Пример выбора и проекции
πActorName(σYear>1976(Movies))
σYear>1976(πTitle,Year(Movies))

Пример выбора и проекцииπActorName(σYear>1976(Movies))σYear>1976(πTitle,Year(Movies))

Слайд 62 Пример декартова произведения и естественного соединения
S
T
S×T – декартово

Пример декартова произведения и естественного соединенияSTS×T – декартово произведениеS⋈T – естественное

произведение
S⋈T – естественное соединение

(natural join)

S⋈T = πS.A,S.B,T.C,T.D(σS.B=T.B(S×T))


Слайд 63 Тэта-соединение (Θ-join): S ⋈Θ T = σΘ(S×T).
Внешние

Тэта-соединение (Θ-join): S ⋈Θ T = σΘ(S×T).Внешние соединения (outerjoins, left/right):

соединения (outerjoins, left/right):
Вненшние тэта-соединения.
Другие виды соединений
S
T
S ⋈∘ T
S ⋈

T

S ⋈ºL T

S ⋈ºR T


Слайд 64 SQL – Structured Query Language первая версия – конец

SQL – Structured Query Language первая версия – конец 1970-х (IBM)

1970-х (IBM) текущий стандарт – 1999 (ANSI)
Создание/удаление таблиц (create/drop

table)
Изменение таблиц (alter table)
Добавление/удаление данных (insert into/ delete from)
Изменение данных (update)
Выборка данных (select-from-where)
Специальные возможности.

Слайд 65 Создание/удаление/изменение таблиц
Типы данных SQL:
INT/INTEGER, SHORTINT
CHAR(n), VARCHAR(n)
BOOLEAN
FLOAT/REAL, DOUBLE PECISION,

Создание/удаление/изменение таблицТипы данных SQL:INT/INTEGER, SHORTINTCHAR(n), VARCHAR(n)BOOLEANFLOAT/REAL, DOUBLE PECISION, DECIMAL(n,d)/NUMERICDATE, TIME, TIMESTAMPBLOB/MEMOCREATE

DECIMAL(n,d)/NUMERIC
DATE, TIME, TIMESTAMP
BLOB/MEMO
CREATE TABLE Movies (
Title

CHAR(200),
Year INTEGER,
Length INTEGER,
FilmType CHAR(5) DEFAULT ’color’,
StudioName VARCHAR(100) DEFAULT ’unknown’,
ActorName VARCHAR(1000),
Birthdate DATE DEFAULT DATE ’0000-00-00’,
Gender BOOLEAN,
PRIMARY KEY (Title, Year)
);

DROP TABLE Movies;




ALTER TABLE Movies
ADD ActorEmail VARCHAR(512)
DEFAULT ’admin@nsu.ru’;

ALTER TABLE Movies
DROP Gender;


Слайд 66 Добавление/удаление/обновление данных
INSERT INTO Movies(Title,Year,ActorName)
VALUES(’Titanic’,1997,’L. Di Caprio’);

INSERT INTO

Добавление/удаление/обновление данныхINSERT INTO Movies(Title,Year,ActorName) VALUES(’Titanic’,1997,’L. Di Caprio’);INSERT INTO MoviesVALUES(’Titanic’,1997,240,’color’,’Universal’,  ’K. Winslet’,’1972-03-08’,true);DELETE FROM Movies WHERE Year

Movies
VALUES(’Titanic’,1997,240,’color’,’Universal’,
’K. Winslet’,’1972-03-08’,true);


DELETE FROM Movies
WHERE

Year<1970 AND StudioName LIKE ’%war%’;

DELETE FROM Movies;


UPDATE Movies
SET ActorName=’Mister ’||ActorName
WHERE NOT Gender AND Birthdate<’1990-01-01’;

Слайд 67 Выборка данных I
Дальнейшая обработка пользователем.
Использование в проверке условий.
Использование

Выборка данных IДальнейшая обработка пользователем.Использование в проверке условий.Использование при добавлении данных.Создание

при добавлении данных.
Создание временных/виртуальных таблиц (например, денормализация отношений).
SELECT *
FROM

Movies;


SELECT Title, ActorName
FROM Movies;
WHERE Year>1970;

π Title,ActorName(σYear>1970(Movies))

INSERT INTO Actors(Name)
SELECT DISTINCT ActorName
FROM Movies
WHERE ActorName NOT IN
(SELECT Name FROM Actors);


Слайд 68 Выборка данных II
Movies(Title,Year,Length,FilmType,Studio)
Actors(Name,Address,Gender,Birthdate,Photo)
Studios(Name,Address)
StarsIn(Title,Year,Name)


SELECT DISTINCT
Movies.Title,

Выборка данных IIMovies(Title,Year,Length,FilmType,Studio)Actors(Name,Address,Gender,Birthdate,Photo)Studios(Name,Address)StarsIn(Title,Year,Name)SELECT DISTINCT  Movies.Title, Std.Name AS StudioName, A.Name AS

Std.Name AS StudioName, A.Name AS ActorName

FROM Movies, Studios

Std, Actors A, StarsIn S, StarsIn SS

WHERE Movies.Title=S.Title AND Movies.Year=S.Year
AND A.Name=S.Name
AND Movies.Studio=Std.Name
AND NOT (S.Name=SS.Name AND (S.Title<>SS.Title OR
S.Year<>SS.Year))
AND Std.Address NOT LIKE ’%USA’

ORDER BY Movies.Title, Std.Name ASC, A.Name DESC;

Слайд 69 Выборка данных III
SELECT Address

Выборка данных IIISELECT Address     SELECT Address FROM

SELECT Address
FROM

Studios, Movies FROM Studios
WHERE Name=Studio WHERE Name=
AND Title=’Indiana Jones’; (SELECT Studio
FROM Movies WHERE Title=
’Indiana Jones’);


EXISTS (SELECT …) / NOT EXISTS (SELECT …)
IN (SELECT …) / NOT IN (SELECT …)
С операциями сравнения =, <>, <, >, <=, >= применяется:
X > ALL (SELECT …)
X > ANY (SELECT …)

Слайд 70 Выборка данных IV
SELECT Address

Выборка данных IVSELECT Address      FROM Studios,


FROM Studios,

(SELECT Studio
FROM Movies
WHERE Title=’Indiana Jones’) Indy
WHERE Name=Indy.Studio;


SELECT NormMovies.*,StarsInMovies.Name,StarsInMovies.Photo,
FROM NormMovies, (SELECT S.Title, S.Year, A.Name, A.Photo
FROM StarsIn S, Actors A
WHERE S.Name=A.Name) StarsInMovies
WHERE NormMovies.Title=StarsInMovies.Title
AND NormMovies.Year =StarsInMovies.Year;

Слайд 71 Значения NULL и UNKNOWN
NULL используется, когда:
Значение не является

Значения NULL и UNKNOWNNULL используется, когда:Значение не является известным на данный

известным на данный момент,
Значение не является применимым в данном

контексте,
Значение закрыто для общего доступа.
NULL не является константой и не может быть явно использован в выражениях.
Для проверки, равно ли ли значение NULL, используется специальный предикаты SQL: IS NULL и IS NOT NULL (например, ActorPhoto IS NOT NULL).
Если NULL встречается в арифметических выражениях, то результатом будет NULL. В логических – UNKNOWN.
Логика SQL трехзначная: FALSE (0), TRUE (1), UNKNOWN (½). Интерпретация логических связок: AND – минимум, OR – максимум, NOT – дополнение до единицы.

Слайд 72 Операторы агрегирования
SUM, AVG, MIN, MAX – операторы над

Операторы агрегированияSUM, AVG, MIN, MAX – операторы над числовыми атрибутами (сумма,

числовыми атрибутами (сумма, среднее, минимум, максимум).
COUNT – количество

записей, которые получены из таблиц, указанных в предложении FROM, и удовлетворяют условию, указанному в предложении WHERE. COUNT(DISTINCT Attr) подсчитывает записи, различающиеся в атрибуте Attr.
Предложение GROUP BY <список атрибутов> позволяет получить группы, в которых значения атрибутов из <список атрибутов> одинаковы, и применить операторы агрегирования в рамках групп. Условие на записи в группе указывается с помощью предложения HAVING. SELECT Studio, SUM(Length) FROM Movies WHERE FilmType=‘bw’ GROUP BY Studio; HAVING Max(Year)<1960;

Слайд 73 Соединения в SQL
T1 CROSS JOIN T2 – декартово

Соединения в SQLT1 CROSS JOIN T2 – декартово произведение таблиц.T1 NATURAL

произведение таблиц.
T1 NATURAL JOIN T2 – естественное соединение таблиц.
T1

JOIN T2 ON <условие на атрибутах T1 и T2> - тета-соединение таблиц.
T1 NATURAL FULL OUTER JOIN T2, T1 NATURAL LEFT OUTER JOIN T2, T1 NATURAL RIGHT OUTER JOIN T2 – внешние соединения.
T1 FULL OUTER JOIN T2 ON <условие>, T1 LEFT OUTER JOIN T2 ON <условие>, T1 RIGHT OUTER JOIN T2 ON <условие> – внешние тета-соединения.
Первые три вида соединений можно выразить с помощью SELECT-FROM-WHERE.

Слайд 74 Описание схемных ограничений – ключи
Объявление ключей с помощью

Описание схемных ограничений – ключиОбъявление ключей с помощью UNIQUEможет быть несколько;атрибуты,

UNIQUE
может быть несколько;
атрибуты, входящие в такой ключ, могут иметь

значение NULL.
Объявление внешних ключей: CREATE TABLE NormMovies ( CREATE TABLE Actors (
Title CHAR(200), Name CHAR(1000) PRIMARY KEY,
Year INTEGER, ... ... );
PRIMARY KEY (Title, Year)
);
CREATE TABLE StarsIn (
Title CHAR(200),
Year INTEGER,
Name CHAR(1000) REFERENCES Actors(Name),
FOREIGN KEY (Title,Year) REFERENCES NormMoveis(Title,Year),
PRIMARY KEY (Title,Year,Name) );
Стратегии добавления записей, содержащих внешние ключи.

  • Имя файла: modeli-dannyh-i-bazy-dannyh.pptx
  • Количество просмотров: 103
  • Количество скачиваний: 0