Базы данных

Содержание

Слайд 2

1. Что такое «нормализация» ? (применительно к реляционным базам данных)

1. Что такое «нормализация» ? (применительно к реляционным базам данных)

Слайд 3

2. В какой форме находится отношение?

2. В какой форме находится отношение?

Слайд 4

3. Что такое модель ER ? (применительно к предметной области проектирования баз данных)

3. Что такое модель ER ? (применительно к предметной области проектирования

баз данных)
Слайд 5

Лекция 3. 1. Общие сведения о СУБД MySQL. 2. Общие сведения

Лекция 3. 1. Общие сведения о СУБД MySQL. 2. Общие сведения о

языке SQL. 3. Наборы символов и порядки сопоставления. 4. Некоторые команды языка определения данных (DDL).
Слайд 6

1. Общие сведения о СУБД MySQL система управления реляционными базами данных

1. Общие сведения о СУБД MySQL

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

код
имеет клиент-серверную архитектуру (но может быть встроена в приложение)
в состав СУБД включены:
сервер MYSQL,
набор клиентских программ ,
инструменты администрирования ,
программные интерфейсы приложений (API)
использует ряд расширений языка SQL (относительно стандартов языка SQL)
Слайд 7

Схема взаимодействия пользователя с СУБД при работе за терминалом Сервер баз

Схема взаимодействия пользователя с СУБД при работе за терминалом

Сервер баз данных

— управляет данными, хранящимися в базе данных.
Клиенты отправляют серверу запросы.
Сервер обрабатывает каждый полученный запрос и отправляет результаты соответствующему клиенту.
Слайд 8

Слайд 9

SQL (язык структурированных запросов) - язык, используемый для доступа к реляционным

SQL (язык структурированных запросов) - язык, используемый для доступа к реляционным

базам данных. Основан на теории реляционных отношений.
Стандарты: ANSI/ISO 1986→1992→1999→2003→2008

2. Общие сведения о языке SQL

Слайд 10

Основные подмножества SQL

Основные подмножества SQL

Слайд 11

Структура команд SQL Команда SQL всегда начинается с действия – слова

Структура команд SQL

Команда SQL всегда начинается с действия – слова или

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

SELECT Name FROM Student
INSERT INTO Student VALUES (1, ‘Иванов’, 7333)
DELETE * FROM Student

Слайд 12

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

Отличие от процедурных языков

В отличие от команд обычных языков программирования, команды

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

Типы лексем (минимальных смысловых элементов языка) Ключевое слово (зарезервированные слова: названия

Типы лексем (минимальных смысловых элементов языка)

Ключевое слово (зарезервированные слова: названия команд,

функций и т.п.)
Идентификатор (имена таблиц, столбцов и др. объектов БД)
Константа (литерал, т.е. данные, интерпретируемые буквально)
Специальный символ (скобки и т.п.)
Слайд 14

Символы-разделители Пробел Символ табуляции Разрыв строки Из последнего следует, что команда

Символы-разделители

Пробел
Символ табуляции
Разрыв строки
Из последнего следует, что команда не обязательно должна располагаться

на одной строке
Слайд 15

Комментарии Однострочные комментарии начинаются с двух дефисов -- или знака #

Комментарии

Однострочные комментарии начинаются с двух дефисов -- или знака #
Многострочные –

начинаются с последовательности /* и завершаются последовательностью */
Слайд 16

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

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

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

далее следует любое сочетание букв, цифр и символов подчеркивания
Регистр ввода незащищенных идентификаторов не играет роли – в соответствии со стандартом SQL/92 при выполнении команды они должны по умолчанию преобразовываться к верхнему регистру
Слайд 17

Ограничения Идентификаторы не могут содержать символов-разделителей Идентификаторы не могут начинаться с

Ограничения

Идентификаторы не могут содержать символов-разделителей
Идентификаторы не могут начинаться с цифры
Идентификаторы не

должны совпадать с ключевыми словами
Слайд 18

Примеры Правильные: Group7333 g7334 group_7334 Неправильные: 7333 Table Группа 7334

Примеры

Правильные:
Group7333
g7334
group_7334
Неправильные:
7333
Table
Группа 7334

Слайд 19

Защищенные идентификаторы Идентификаторы, заключенные в двойные кавычки, называют защищенные идентификаторами. Например:

Защищенные идентификаторы

Идентификаторы, заключенные в двойные кавычки, называют защищенные идентификаторами. Например:
"Группа 7334" 
Использование

защищенных идентификаторов позволяет преодолеть рассмотренные ограничения
Защищенные идентификаторы интерпретируются буквально – т.е. являются регистрозависимыми
Слайд 20

Числовые константы Числовые константы (целочисленные и вещественные) задаются в SQL так

Числовые константы

Числовые константы (целочисленные и вещественные) задаются в SQL так же,

как и большинстве обычных языков программирования:
12
–134
1.5
Слайд 21

Строковые константы Строковые константы представляют собой произвольную совокупность символов, заключенную апострофы

Строковые константы

Строковые константы представляют собой произвольную совокупность символов, заключенную апострофы (в

одинарные кавычки)
Если в самой константе встречается апостроф, при её определении следует удвоить его
Если строковая константа представлена в кодировке Unicode, то ей должна предшествовать буква N
Слайд 22

Примеры 'SQL/92' 'O''Reilly' N'Иванов'

Примеры

'SQL/92'
'O''Reilly'
N'Иванов'

Слайд 23

Типы данных целые вещественные строковые дата/время NULL

Типы данных

целые
вещественные
строковые
дата/время
NULL

Слайд 24

NULL — специальное значение (псевдозначение), которое может быть записано в поле

NULL  — специальное значение (псевдозначение), которое может быть записано в поле

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

NULL

Слайд 25

NULL Трёхзначная логика

NULL

Трёхзначная логика

Слайд 26

Тип данных: целые

Тип данных: целые

Слайд 27

Операции с целыми числами Обычные операции с целыми, как в любом языке программирования

Операции с целыми числами

Обычные операции с целыми, как в любом языке

программирования
Слайд 28

Тип данных: вещественные (1/2)

Тип данных: вещественные (1/2)

Слайд 29

Тип данных: вещественные (2/2)

Тип данных: вещественные (2/2)

Слайд 30

Функции для работы с числовыми данными (1/2)

Функции для работы с числовыми данными (1/2)

Слайд 31

Функции для работы с числовыми данными (2/2)

Функции для работы с числовыми данными (2/2)

Слайд 32

Тип данных: строки

Тип данных: строки

Слайд 33

Некоторые функции для работы со строками (1/3)

Некоторые функции для работы со строками (1/3)

Слайд 34

Некоторые функции для работы со строками (2/3)

Некоторые функции для работы со строками (2/3)

Слайд 35

Некоторые функции для работы со строками (3/3)

Некоторые функции для работы со строками (3/3)

Слайд 36

Типы данных: дата/время

Типы данных: дата/время

Слайд 37

Некоторые функции для работы с дата/время

Некоторые функции для работы с дата/время

Слайд 38

Некоторые функции для работы с дата/время

Некоторые функции для работы с дата/время

Слайд 39

Некоторые функции для работы с дата/время

Некоторые функции для работы с дата/время

Слайд 40

3. Символьные наборы и порядки сопоставления. Символьный набор (character set)– совокупность

3. Символьные наборы и порядки сопоставления.

Символьный набор (character set)– совокупность изображений

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

Порядок сопоставления (collation) - совокупность правил сравнения символов в наборе, т.е. правил их упорядочивания.

КАКИЕ СИМВОЛЬНЫЕ НАБОРЫ ПОДДЕРЖИВАЕТ СЕРВЕР MYSQL ?

Слайд 41

Кириллические наборы символов

Кириллические наборы символов

Слайд 42

Задание символьного набора и порядка сопоставления на уровне СОЕДИНЕНИЯ Какой набор

Задание символьного набора и порядка сопоставления на уровне СОЕДИНЕНИЯ

Какой набор символов

имеет запрос, когда он покидает клиента? (переменная character_set_client)
В какой набор символов сервер должен транслировать запрос после его получения? (переменные character_set_connection и collation_connection).
В какой символьный набор должен сервер транслировать результирующий набор или сообщение об ошибке перед отправкой их клиенту? (переменная character set results)

SET NAMES 'имя__набора_символов'

SET NAMES xxx;

SET character_set_client = xxx;
SET character_set_results = xxx;
SET character_set_connection = xxx;

эквивалентны

Слайд 43

4. Некоторые конструкции языка определения данных (DDL)

4. Некоторые конструкции языка определения данных (DDL)

Слайд 44

Создание базы данных CREATE DATABASE [IF NOT EXISTS] db_name [create_specification] CREATE DATABASE SecScaner CHARACTER SET CP1251;

Создание базы данных
CREATE DATABASE [IF NOT EXISTS] db_name
[create_specification]
CREATE DATABASE SecScaner CHARACTER

SET CP1251;
Слайд 45

Команда создания таблицы CREATE TABLE ( { [( )] [ ...]

Команда создания таблицы

CREATE TABLE

( {
[()] [ ...] } .,.. [
] .,..
)
Слайд 46

Примеры CREATE TABLE Student ( ID int, Fio varchar(50), Gender char(1)

Примеры

CREATE TABLE Student
( ID int, Fio varchar(50), Gender char(1) )

CREATE

TABLE Student
(ID int PRIMARY KEY,
Fio varchar(50) NOT NULL,
GroupID smallint REFERENCES Group(ID),
Gender char(1) DEFAULT ‘м’
)
Слайд 47

Ограничения целостности таблицы CREATE TABLE Student (GroupID smallint REFERENCES Group(ID), ID

Ограничения целостности таблицы

CREATE TABLE Student
(GroupID smallint REFERENCES Group(ID),
ID int,

-- номер в журнале группы
Fio varchar(50),
Gender char(1) DEFAULT ‘м’ ,
PRIMARY KEY (GroupID, ID)
);
Слайд 48

Команда изменения структуры таблицы ALTER TABLE ( [ADD .,..] .,.. [ALTER

Команда изменения структуры таблицы

ALTER TABLE

( [ADD .,..] .,..
[ALTER COLUMN
[NULL | NOT NULL] ] .,..
[DROP COLUMN ] .,..
)
Слайд 49

Пример ALTER TABLE Student ADD Birthdate datetime NULL

Пример

ALTER TABLE Student
ADD Birthdate datetime NULL

Слайд 50

Команда удаления DROP TABLE DROP DATABASE

Команда удаления
DROP TABLE


DROP DATABASE