Презентация на тему "Реляционная модель"

Презентация: Реляционная модель
1 из 117
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
0.0
0 оценок

Комментарии

Нет комментариев для данной презентации

Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.


Добавить свой комментарий

Аннотация к презентации

Посмотреть и скачать бесплатно презентацию по теме "Реляционная модель", состоящую из 117 слайдов. Размер файла 0.38 Мб. Каталог презентаций, школьных уроков, студентов, а также для детей и их родителей.

  • Формат
    pptx (powerpoint)
  • Количество слайдов
    117
  • Слова
    другое
  • Конспект
    Отсутствует

Содержание

  • Презентация: Реляционная модель
    Слайд 1

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

  • Слайд 2

    Модель данных

    – Определяет абстракцию данных для приложений – Включает: Структуры данных Операции Зависимости Ограничения

  • Слайд 3

    Модель данных «Сущность-связь»

    Впервые описана в 1975 г. как средство высокоуровневого проектирования БД Инструмент концептуального уровня Не содержит операций и поэтому не может использоваться непосредственно Развитая система зависимостей и ограничений целостности

  • Слайд 4

    Пример ER-диаграммы

  • Слайд 5

    Концептуальные модели данных

    Иерархическая Сетевая Реляционная Объектно-реляционная

  • Слайд 6

    В 70-х – 80-х годах, когда компьютерные ученые все еще носили коричневые смокинги и очки с большими, квадратными оправами, данные хранились бесструктурно в файлах, которые представляли собой текстовый документ с данными, разделенными (обычно) запятыми или табуляциями.

  • Слайд 7

    Иерархическая модель данных

  • Слайд 8

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

  • Слайд 9

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

    Первые публикации (1969-1971) Интенсивное развитие теории в 70-х гг. Ранние попытки реализации: 1978 Стандарт SQL –1986 Эффективные реализации SQL: 1990

  • Слайд 10

    Эдгар Франк Кодд

    Codd, E.F. (1970). «A Relational Model of Data for Large Shared Data Banks». Communications of the ACM

  • Слайд 11

    Пример

  • Слайд 12

    Реляционная модель – структуры данных

    Домены: множества, элементы которых рассматриваются как скалярные значения Отношения: предикаты, заданные на прямом произведении (не обязательно разных) доменов Атрибуты: аргументы отношений Позиционные или именованные атрибуты?

  • Слайд 13

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

    Домены D1, D2,…,Dn АтрибутыA1, A2, …, An Кортежи t = , ai∈Di Формально R : D1хD2.. Dn→ {0,1} или R ⊂D1хD2.. Dn D1 = {1; 2; 3}; D2 ={a, b} R⊂ D1хD2 ={;;;;;}

  • Слайд 14

    Похожа на таблицы Столбцы – атрибуты Строки – данные Шапка таблицы – имена атрибутов

  • Слайд 15

    Еще раз терминология

    Домен – множество возможных значений какого-либо атрибута Таблица - отношение Экземпляр– конкретное наполнение базы данных Конкретное наполнение таблицы – тело отношения Совокупность атрибутов отношения – Заголовок отношения (схема) Заголовок + тело = значение отношения Строка таблицы называется кортежем

  • Слайд 16

    Заголовок (схема) отношения

    Схема отношения - конечное множество упорядоченных пар вида , где A называется именем атрибута, а T обозначает имя некоторого базового типа или ранее определенного домена. По определению требуется, чтобы все имена атрибутов в заголовке отношения были различны. Количество атрибутов называется арностью (размерностью) отношения.

  • Слайд 17

    Типы данных

    Символьный Битовый Точные числа Округленные числа Денежные Дата/время Интервал

  • Слайд 18

    Отношение – это множество

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

  • Слайд 19

    Сущности

    Каждая сущность превращается в таблицу. Имя сущности становится именем таблицы. Каждый атрибут становится столбцом. Столбцы для необязательных атрибутов могут содержать неопределенные значения; столбцы для обязательных - не могут. Компоненты уникального идентификатора сущности превращаются в ключ таблицы. 

  • Слайд 20

    Сущность

  • Слайд 21

    Ключ

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

  • Слайд 22

    Связи

    Также хранятся в отношении Схема данного отношения составляется из ключевых атрибутов объектов, участвующих связи

  • Слайд 23

    Связи 1:1

    Название_отдела Отдел

  • Слайд 24

    Связи 1:N

    Отдел Сотрудник

  • Слайд 25

    Слабые сущности

    Адрес Сотрудник живет Адрес

  • Слайд 26

    Связи М:N

    Проект Сотрудник участвует Участие в проекте

  • Слайд 27

    Реляционная алгебра – механизм манипулирования реляционными данными

    Все операции производятся над отношениями, и результатом операции является отношение. R=f(R1, R2, … , Rn)

  • Слайд 28

    Реляционная модель: базовые операции

    Ограничение (селекция, фильтрация) Проекция Прямое (декартово) произведение Соединение: произведение с последующей фильтрацией Естественное соединение: соединение по равенству атрибутов

  • Слайд 29

    SQLStructured Query Language

    Structured English Query Language (1983) Стандарты: 86, 89, 92, 1999 DDLcreate table, create view, . . . , alter table, alter view, . . . ,drop table, drop view, . . . DMLselect, insert, delete, update, commit, rollback

  • Слайд 30

    Создание базы данных

    CREATE DATABASE db_name; DROP DATABASE db_name; USE db_name;

  • Слайд 31

    Создание БД

    CREATE DATABASE database_name [options]

  • Слайд 32

    Идентификаторы

    идентификатор может иметь длину до 128 символов; идентификатор должен начинаться с буквы; идентификатор не может содержать пробелы. номер int, [Фамилия и Имя] nvarchar(100), [!@#$%^&*()_-=+ ~`\.,;:'"[]] int);

  • Слайд 33

    CREATE DATABASE Sales ON ( NAME = Sales_dat, FILENAME = 'C:\tmp\saledat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = Sales_log, FILENAME = 'C:\tmp\salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) ;

  • Слайд 34

    О синтаксисе

    Команды разделяются знаком «;» Пакеты команды разделяются словом «go» Комментарии: В одной строке «--» Многострочные «/* … */»

  • Слайд 35

    Объекты базы данных

    Таблицы Связи между таблицами Представления Индексы Хранимые процедуры Функции Триггеры

  • Слайд 36

    Как создать таблицу

    CREATE TABLE tb_name ( ( column1 , column2 , … ) );

  • Слайд 37

    Типы данных

    Точные числа Округленные числа Символьный Символьный Юникода Битовый Дата/время

  • Слайд 38

    Точные целые

    bigint8 байт int4 байта smallint2 байта tinyint1 байт

  • Слайд 39

    Точные десятичные

    decimal[ (p[ ,s] )] и numeric[ (p[ ,s] )] Числа с фиксированной точностью и масштабом. p (точность) Максимальное количество десятичных разрядов числа (как слева, так и справа от десятичной запятой). Точность должна принимать значение от 1 до 38. По умолчанию для точности принимается значение 18. s (масштаб) Максимальное количество десятичных разрядов числа справа от десятичной запятой. Масштаб может принимать значение от 0 до p. Масштаб может быть указан только совместно с точностью. По умолчанию масштаб принимает значение 0; поэтому 0

  • Слайд 40

    Decimal/Numeric

    «Неупакованное» число с плавающей точкой. Ведет себя подобно строковому столбцу, содержащему цифровое значение. Термин «неупакованное» означает, что число хранится в виде строки и при этом для каждого десятичного знака используется один символ. Разделительный знак десятичных разрядов, а также знак '-' для отрицательных чисел не учитываются в p (но место для них зарезервировано). Если атрибут s равен 0, величины будут представлены без десятичного знака, т.е. без дробной части.

  • Слайд 41

    Для хранения чисел, строго меньших 1000 с двумя знаками после запятой используемdecimal(5,2)

  • Слайд 42

    Точные денежные

    Типы данных, представляющие денежные (валютные) значения. Типы данных money и smallmoney имеют точность до одной десятитысячной денежной единицы, которую они представляют. Перед числовым значением может указываться символ валюты, но храниться будет только число.

  • Слайд 43

    Bit - Битовый

    bit Целочисленный тип данных, который может принимать значения 1или 0.

  • Слайд 44

    Округленные числа

    Float и real Float – точность до 15 знаков - 1,79E+308 — -2,23E-308, 0 и 2,23E-308 — 1,79E+308 8 байтов real - точность до 7 знаков - 3,40E + 38 — -1,18E - 38, 0 и 1,18E - 38 — 3,40E + 38 4 байта

  • Слайд 45

    Float/real

    Избегайте использования столбцов типов float и real для сравнения с операторами = и . Рекомендуется ограничить использование столбцов float и real операциями сравнения > или

  • Слайд 46

    Символьные

    char [ ( n ) ] Символьные данные фиксированной длины, не в Юникоде, с длиной n байт. Значение n должно находиться в интервале от 1 до 8000. Размер хранения данных этого типа равен n байт. varchar [ ( n | max ) ] textvarchar(max) Символьные данные переменной длины, не в Юникоде. n может иметь значение от 1 до 8 000. max означает, что максимальный размер хранения равен 2^31-1 байт(2 ГБ). Размер хранения равен фактической длине данных плюс два байта. Не чувствительны к регистру!

  • Слайд 47

    Символьные Unicode

    nchar [ ( n ) ] Символьные данные фиксированной длиныв Юникоде, с длиной n символов. Значение n должно находиться в интервале от 1 до 4000. Размер хранения данных этого типа равен 2n байт. nvarchar [ ( n | max ) ] Символьные данные переменной длины в Юникоде. n может иметь значение от 1 до 4 000. max означает, что максимальный размер хранения равен 2^31-1 байт(2 ГБ). Размер хранения равен фактической длине данных плюс два байта. Не чувствительны к регистру!

  • Слайд 48

    Ввод русских букв в таблицу

    Тип поля на nvarchar(N)или nchar(N) Перед тестом поставить букву N (N'русский текст')

  • Слайд 49

    Битовые

    binary [ ( n ) ] Битовые данные фиксированной длины, с длиной n байт. Значение n должно находиться в интервале от 1 до 8000. Размер хранения данных этого типа равен n байт. varbinary [ ( n | max) ] Битовые данные переменной длины. n может иметь значение от 1 до 8 000. max означает, что максимальный размер хранения равен 2^31-1 байт (2ГБ). Размер хранения равен фактической длине данных плюс два байта. Чувствительны к регистру!

  • Слайд 50

    Очень большие

    ntext, text, и image данные будут удалены в будущей версии Сервера MicrosoftSQL. Избегайте использования этих типов данных Используйте nvarchar (max), varchar (max), и varbinary (max) вместо этого.

  • Слайд 51

    DATE/TIME

    Date - 3 байта 'YYYY-MM-DD’ Time - 5 байтВремя. Интервал от '-838:59:59' до '838:59:59‘ 'HH:MM:SS' Datetime - 8 байт'YYYY-MM-DD HH:MM:SS' Datetimeoffset - 10 байт (+ часовой пояс)

  • Слайд 52

    Dateandtime(8 байт) - Дата и время с точностью в 3.33 милисекунды. Smalldatetime(4 байта) - Дата и время с точностью в 1 секунду.

  • Слайд 53

    От 0001-01-01 до 9999-12-31 От 1 января 1 года нашей эры до 31 декабря 9999 года нашей эры.

  • Слайд 54

    Специальные типы данных

    hierarchyid - позиция в древовидной иерархии geometryпредставляет данные в Евклидовой (плоской) системе координат. geographyпредставляет данные в системе координат круглой земли (координаты широты и долготы в системе GPS). xml - хранение XML-данных

  • Слайд 55

    Константы

    NULL ‘any string‘ N‘текст в Юникоде‘ Числа без кавычек '1912-10-25 12:24:32 +10:0'

  • Слайд 56

    Определение типов данных атрибутов - строки

    Для коротких символьных значений и строк фиксированной длины следует выбирать тип CHAR. Например, для поля "единица измерения" со значениями 'кг', 'шт.', 'уп.' (char(3)), для поля "пол" (char(1)) и т.п. Для символьных строк переменной длины нужно выбирать тип VARCHAR с указанием максимально возможной длины хранимого значения. Для символов на 3 и более языках ncharили nvarchar

  • Слайд 57

    Определение типов данных атрибутов - числа

    Для числовых атрибутовбез сложных расчетов – тип numeric, указывая реально необходимое количество разрядов. Номер сотрудника numeric(4) (до 10000 человек)Зарплата – numeric(8, 2) (до 999999.99 рублей). Для числовых атрибутов с расчетами числовые типы, которые хранят данные в машинном (двоичном) представлении (int, bigint…). Это ускорит выполнение расчётов. Для числовых атрибутов, имеющих ведущие нули, тип CHAR, а не числовой тип, иначе ведущие нули будут потеряны. Серия и номер паспорта (char(10).

  • Слайд 58

    Определение типов данных атрибутов - прочее

    Для хранения дат нужно выбирать тип DATE или его варианты (DATETIME, например). Это позволит использовать арифметику дат и не заботиться о правильности вводимых данных: СУБД сама проверит допустимость даты. Для семантически одинаковых полей разных таблиц нужно выбирать одинаковые типы данных. Например, ФИО сотрудника и ФИО клиента. Для упрощения типизации данных можно создать специальные типы данных (createtype) и использовать их в качестве типов полей таблиц.

  • Слайд 59

    Типы данных, определяемые пользователем

    CREATE TYPE mytype FROM varchar(11) NOT NULL ;

  • Слайд 60

    Табличный тип

    CREATE TYPE Location AS TABLE ( LocationName VARCHAR(50) , CostRate INT );

  • Слайд 61

    Преобразование типов данных

    SELECT '2'+4 Функции CAST и CONVERT CAST ( expression AS data_type) CONVERT ( data_type, expression [ , style ] )

  • Слайд 62

    Примеры CAST

    CAST (expression AS data_type) SELECT CAST('12' as INT)+45 57 SELECT CAST(27 as CHAR(2))+'R' 27R SELECT CAST ( $10.50as VARCHAR(10) ) 10.50

  • Слайд 63

    Примеры CONVERT

    CONVERT ( data_type, expression [ , style ] ) CONVERT(VARCHAR(12), GETDATE(), 1) 02/21/15 SELECT CONVERT (bit, 'true') 1 SELECT CONVERT(bit, 'false') 0

  • Слайд 64

    Временные таблицы локальные

    CREATE TABLE #TestTable ( id INT PRIMARY KEY ) Таблица будет существовать только во время выполнения одной сессии, и работать с ней сможете только вы. БД tempdb

  • Слайд 65

    Временные таблицы глобальные

    CREATE TABLE ##TestTable ( id INT PRIMARY KEY ) Таблица будет видна всем. Уничтожается после закрытия создавшей ее сессии /окончания работы с ней другими пользователями

  • Слайд 66

    Табличные переменные

    DECLARE @table_var table(id int); Автоматически очищаются в конце функции, хранимой процедуры или пакета, где они были определены Табличная переменная не участвует в транзакции. Не подходят для хранения значительных объёмов данных (>100 строк).

  • Слайд 67

    Передача имени таблицы

    DECLARE @SQL varchar(8000), @table_namevarchar(20)='dbo.Employees' SET @SQL = 'SELECT * FROM ' + @table_name exec(@SQL)

  • Слайд 68

    Типы данных, определяемые пользователем

    user defined type CREATE TYPE mytype FROM varchar(11) NOT NULL ;

  • Слайд 69

    Табличный тип

    В БД объявляется user defined type в виде таблицы с нужным типом данных. Его можно передавать в хранимую процедуру как параметр. В хранимой процедуре этот тип будет виден как t-sqlтаблица, к которой можно делать запросы. CREATE TYPE newlistAS TABLE(id int NULL)

  • Слайд 70

    Создание таблицы

    CREATE TABLE table_name(atr1, [atr2,…])

  • Слайд 71

    Определение атрибутов таблицы

    { имя столбца } { тип данных} [ значение по умолчанию] [ список ограничений ]

  • Слайд 72

    Создание таблицы

    CREATE TABLE people (id INT, name CHAR(20), address VARCHAR(35), birthday DATE)

  • Слайд 73

    Задание ограничений

    NOT NULL | [ PRIMARY KEY | UNIQUE ] | references | CHECK ( условие )

  • Слайд 74

    Ненулевые значения

    CREATE TABLE people (id INT, name CHAR(20) NOT NULL, address VARCHAR(35), birthday DATE)

  • Слайд 75

    Значение по умолчанию

    CREATE TABLE people (id INT, name CHAR(20), address VARCHAR(35) DEFAULT ‘Без регистрации’, birthday DATE)

  • Слайд 76

    Уникальность поля

    CREATE TABLE people (id INT UNIQUE NULL, name CHAR(20), address VARCHAR(35), birthday DATE) Несколько полей (или их комбинаций) могут быть уникальны Уникальное поле может быть NULL

  • Слайд 77

    Первичный ключ

    CREATE TABLE people (id INT PRIMARY KEY, name CHAR(20) NOT NULL, address VARCHAR(35), birthday DATE); PRIMARY KEY – всегда NOT NULL PRIMARY KEY – только один в таблице

  • Слайд 78

    Первичный ключ –несколько атрибутов

    CREATE TABLE people (id INT UNIQUE, name CHAR(20) , address VARCHAR(35), birthday DATE, PRIMARY KEY (name, birthday))

  • Слайд 79

    Уникальность – несколько атрибутов

    CREATE TABLE people (id INTPRIMARY KEY, name CHAR(20), address VARCHAR(35)UNIQUE, birthday DATE, UNIQUE (name, birthday)),

  • Слайд 80

    Вычисляемый столбец

    CREATE TABLE t1 (a int, b int, c AS a/b [ PERSISTED [ NOT NULL ] ]);

  • Слайд 81

    Если не указано иное, вычисляемые столбцы являются виртуальными столбцами, которые физически не хранятся. Их значения вычисляются заново каждый раз при обращении к ним запроса. Для физического хранения вычисляемых столбцов в таблицах используется ключевое слово PERSISTED - можно создать на вычисляемом столбце индекс

  • Слайд 82

    Если формула связывает два выражения различных типов данных, то по правилам приоритета типов данных определяется, какой тип данных имеет меньший приоритет и будет преобразован в тип данных с большим приоритетом.  Если неявное преобразование не поддерживается, возвращается ошибка «Errorvalidatingtheformulaforcolumncolumn_name.».  Используйте функцию CAST или CONVERT, чтобы устранить конфликт типа данных.  6/4=1 !!!!!

  • Слайд 83

    Вычисляемые столбцы при создании таблицы

    CREATE TABLE t2 ( a int , b int , c int , x float , y AS CASE x WHEN 0 THEN a WHEN 1 THEN b ELSE c END );

  • Слайд 84

    CREATE TABLE people (id INT PRIMARY KEY , birth DATE , salary INT, age as DATEDIFF(YEAR, GETDATE(),birth) , nalog as CAST(salary as real)*13/100 )

  • Слайд 85

    Атрибут IDENTITY

    IDENTITY [ (seed ,increment) ] Seed - номер первой строки, вставляемой в таблицу Increment - «Шаг» после последнего добавленного Надо определять либо и начальный номер, и шаг, или ничего. По умолчанию (1,1). Сброс - DBCC CHECKIDENT ('имя_таблицы', RESEED, новое_стартовое_значение)

  • Слайд 86

    CREATE TABLE animals (id INT NOT NULL IDENTITY(10,2), name CHAR(30) NOT NULL, PRIMARY KEY (id)); INSERT INTO animals (name) VALUES ("dog"),("cat"),("penguin"),("lax"),("whale");

  • Слайд 87

    Проверка ограничений

    CREATE TABLE people ( id int PRIMARY KEY, name CHAR(20), address VARCHAR(35), birthday DATE, beg_date DATE,genderCHAR, CHECK (gender IN (‘F’, ‘M’))) CHECK с использованием функций:(стаж(birthday, beg_date)

  • Слайд 88

    CREATE TABLE people (id int PRIMARY KEY, name CHAR(20) , address VARCHAR(35), birthday DATE, genderCHAR, CONSTRAINT chk_Person CHECK (gender IN (‘F’, ‘M’)))

  • Слайд 89

    Проверка ограниченийшаблоны LIKE

    CREATE TABLE people (id int PRIMARY KEY,name CHAR(20) CHECK (name LIKE ‘[A-Z]%’),zip CHAR(6) CHECK (zip LIKE ‘_[1-35][0-9]’),address VARCHAR(35),birthday DATE,genderCHAR)

  • Слайд 90

    LIKE

  • Слайд 91

    Внешний ключ

    CREATE TABLE people (id INT PRIMARY KEY, name CHAR(20) NOT NULL, address VARCHAR(35), birthday DATE); У каждого может быть несколько телефонов

  • Слайд 92

    CREATE TABLE phone (id_pint,type CHAR CHECK (type IN (‘H’, ‘M’, ‘W’), phone_code char(3) DEFAULT ‘812’,phone_number numeric(7) )

  • Слайд 93

    CREATE TABLE phone (id_pintREFERENCES people (id),type CHAR CHECK (type IN (‘H’, ‘M’, ‘W’), phone_code char(3) DEFAULT ‘812’,phone_number char(7) )

  • Слайд 94

    CREATE TABLE phone (id_pint,type CHAR CHECK (type IN (‘H’, ‘M’, ‘W’),phone_code char(3) DEFAULT ‘812’,phone_number char(7),FOREIGN KEY (id_p) REFERENCES people (id))

  • Слайд 95

    Требования внешнего ключа

    Поле, на который ссылается внешний ключ, должно быть PRIMARY KEY или UNIQUE Оба поля должны быть строго одного типа! Называться поля могут по-разному

  • Слайд 96

    Внешний ключ

    FOREIGN KEY (index_col_name, ...) REFERENCES table_name (index_col_name, ...) [ON DELETE {NO ACTION | SET NULL |CASCADE| SET DEFAULT}] [ON UPDATE {NO ACTION | SET NULL |CASCADE| SET DEFAULT}]

  • Слайд 97

    Ссылочная целостность –стратегии:

    NO ACTION - отмена операции CASCADE - каскадная модификацияUPDATE(1) UPDATE(2)DELETE(1) DELETE(2) SET NULL -отложенная проверка ограничений – замена несуществующего значения на NULL SET DEFAULTзамена несуществующего значения на значение по умолчанию

  • Слайд 98

    SET NULL | CASCADE

    CREATE TABLE phone {id_pint REFERENCES people (id)ON DELETE CASCADEON UPDATE CASCADE,…}

  • Слайд 99

    Внешний ключ – нереализуемые связи

    Нельзя реализовать при помощи внешнего ключа связи с кардинальностью 1:n или n:m, обязательные в обе стороны. Например, связь заказы–строки заказов: заказ не может быть пустым, и заказанный товар должен входить в определённый заказ. Эта проблема обычно решается так: связь делается необязательной со стороны первичного ключа, а внешний ключ остаётся обязательным. При этом в приложении необходимо предусмотреть правило обработки пустых заказов (например, их удаление).

  • Слайд 100

    Описание ограничений целостности

    Если какое-либо ограничение целостности может быть включено в структуру БД, то его надо реализовать именно так. Необходимо обратить особое внимание на поля таблиц, для которых домен определён как список возможных значений. Это ограничение целостности можно реализовать в виде: CHECK( IN ()). 'незаконченное высшее', 'незаконч. высшее', 'н. высш.' и т.д..

  • Слайд 101

    Но такой подход имеет следующий недостаток: добавление нового значения в список потребует изменения схемы отношения. Можно поступить до-другому: вынести этот список значений в отдельное отношение. Например, список типов образования (начальное, неполное среднее, среднее, средне-специальное, незаконченное высшее, высшее) для таблицы СОТРУДНИКИ. ТаблицаТИПЫ ОБРАЗОВАНИЯ будет состоять из одного поля Название типа, определённого как первичный ключ. Тогда поле Образование таблицы СОТРУДНИКИ станет внешним ключом.

  • Слайд 102

    Внешний ключ – нереализуемые связи

    К необычным конструкциям данных можно отнести так называемые взаимоисключающие связи, когда подчинённая сущность связана с одной из двух родительских сущностей. Например, счёт в банке может принадлежать либо физическому лицу, либо юридическому, и не может принадлежать и тому, и другому либо не принадлежать никому. “you cannot get a job until you have experience, and you cannot getexperience until you have a job!”

  • Слайд 103

    Изменение таблицы

    Добавляем столбец ALTER TABLE table_name ADD column_namedatatype

  • Слайд 104

    Удаляем столбец ALTER TABLE table_name DROP COLUMN column_name

  • Слайд 105

    Добавление/снятие ограничений

    ALTER TABLE people ADD CHECK (id>0) ALTER TABLE people ADD CONSTRAINT chk_Person CHECK (id>0 AND address='SPb') ALTER TABLE people DROP CONSTRAINT chk_Person

  • Слайд 106

    Изменение таблицы

    Изменяем столбец ALTER TABLE table_nameALTER COLUMN column_namedatatype

  • Слайд 107

    Добавляем первичный ключ ALTER TABLE employeeADD CONSTRAINT c1 PRIMARY KEY (id)  id должен быть NOT NULL!

  • Слайд 108

    Добавляем внешний ключ ALTER TABLE employeeADD FOREIGN KEY (dno) REFERENCES department(dnumber) 

  • Слайд 109

    Добавляем ограничение ALTER TABLE exdWITH NOCHECK ADD CONSTRAINT exd_check CHECK (column_a > 1)

  • Слайд 110

    Нельзя изменять следующие столбцы

    Столбец с типом данных timestamp. Вычисляемый столбец или используемый в вычисляемом столбце. PRIMARY KEY или [FOREIGN KEY] REFERENCES. Используется в ограничениях CHECK или UNIQUE. Однако допустимо изменение длины столбца изменяемой длины, используемого в ограничении CHECK или UNIQUE. Некоторые изменения типов данных могут повлечь за собой изменения в данных. Например, изменение столбца типа nchar или типаnvarcharнаcharилиvarchar может вызвать преобразование символов национальных алфавитов. 

  • Слайд 111

    Вставка

    INSERT INTO tbl_name(col1, col2) VALUES ('Character data1',1), ('Character data2',2), (…); Будут вставлены либо все строки, либо ни одной – операция неделима!!! INSERT INTO Orders (Order_ID, Customer_ID, Order_Date) VALUES (34, 'FRANS', '4/2/2004');

  • Слайд 112

    INSERT INTO tbl_name(col1, col2) VALUES ('Character data',1), (…) Можно:INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2); Но нельзя:INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15);

  • Слайд 113

    Изменение

    UPDATE tbl_name SET col1=expr1 [, col2=expr2 ...] [WHERE where_definition] UPDATE Product SET ListPrice = ListPrice * 2, MyDate=MyDate+1 WHERE id=158;

  • Слайд 114

    Удаление

    DELETE FROM tbl_name [WHERE where_definition]; Если не указать условие, то будут удалены все строки таблицы TRUNCATE TABLE     table_name ;

  • Слайд 115

    Ограничиваем число строк

    INSERT | DELETE | UPDATE[ TOP (expression) [PERCENT]]

  • Слайд 116

    Удаление таблицы

    DROP TABLE имя_таблицы удаляет и данные, и структуру.

  • Слайд 117

    Удаление

    DROP TABLE [IF EXISTS] tbl_name

Посмотреть все слайды

Сообщить об ошибке