- •Недостатки файловых систем по сравнению с системами баз данных
- •Понятие системы и информационной системы. Классификация информационных систем
- •Понятие системы баз данных и ее упрощенная схема
- •Понятия интегрированности и разделяемости данных, независимости от данных и целостности данных применительно к системам баз данных
- •Жизненный цикл базы данных. Этапы концептуального, логического и физического проектирования базы данных
- •Понятия модели и модели данных. Логические модели данных
- •Иерархическая модель данных, ее достоинства и недостатки
- •Сетевая модель данных, ее достоинства и недостатки
- •Основные понятия реляционной алгебры
- •Определение сущности в реляционной алгебре. Свойства сущности
- •Понятия возможного, первичного и альтернативного ключей
- •Операции реляционной алгебры. Базовые реляционные операции
- •Теоретико-множественные;
- •Специальные.
- •Теоретико-множественные реляционные операции. Свойства реляционной операции декартова произведения
- •Специальные реляционные операции
- •Реляционные операции селекции и проекции
- •Реляционная операция соединения. Ее разновидности
- •Реляционная операция естественного соединения и ее свойства
- •Реляционная операция деления
- •Примитивные и не примитивные реляционные операции Оператор соединения
- •Оператор пересечения
- •Оператор деления
- •Типы связей между сущностями
- •Связь м:м
- •Связь между сущностями типа «многие ко многим». Ее преобразование при переходе к физической модели
- •Нормализация данных. Первая нормальная форма
- •Нормализация данных. Вторая нормальная форма
- •2 Нормальная форма
- •Нормализация данных. Третья нормальная форма и нормальная форма Кодда-Бойса
- •Нормализация данных. Четвертая и пятая нормальные формы
- •5Ая нормальная форма
- •Целостность данных
- •Основные и дополнительные правила ссылочной целостности
- •Язык sql: основные команды манипулирования данными
- •Язык sql: удаление записей из таблицы
- •Язык sql: использование операторов in, between, like и ключевого слова null в условиях отбора данных
- •Язык sql: обновление записей в таблице
- •Язык sql: выборка данных из таблиц. Использование агрегатных функций и вычисляемых полей
- •Язык sql: группировка строк набора данных
- •Язык sql: соединение таблиц (внутреннее и внешнее)
- •Язык sql: использование подзапросов
- •Язык sql: операторы exists, any, all в командах с подзапросом
- •Язык sql: основные команды определения данных
- •Язык sql: создание и использование представлений (просмотров) и индексов
- •Назначение и функции субд
- •Управление словарем данных и обеспечение безопасности данных в субд
- •Обеспечение целостности данных в субд
- •Управление многопользовательским доступом к данным в субд
- •Управление резервным копированием и восстановлением данных в субд
- •Механизм тиражирования (репликации) данных в субд
- •Типы баз данных
- •Иерархическая база данных, структура иерархических баз данных
- •Сетевая база данных, структура сетевых баз данных
- •Реляционные базы данных, структура реляционных баз данных особенности реляционных баз данных
- •Распределенные базы данных. Двенадцать правил Дейта для распределенных баз данных
- •Системы «клиент/сервер»
- •Системы поддержки принятия решений
- •Классификации
- •Структура
- •Преимущества
- •Хранилища данных. Их отличия от операционных баз данных
- •Подготовка данных применительно к хранилищам данных
- •Магазины (витрины) данных. Банки оперативных данных
- •Многомерные базы данных. Разработка (извлечение) данных
- •Технологии Big Data
- •ERwin: сильные и слабые связи между сущностями. Операции прямого и обратного проектирования
- •Операции прямого и обратного проектирования
- •Sql Server: курсоры и триггеры, их виды, процесс использования
Язык sql: выборка данных из таблиц. Использование агрегатных функций и вычисляемых полей
SELECT[DISTINCT] {*|<имя_поля>[<,имя_поля>…]}
FROM<имя_поля>[<,имя_поля>…]
[WHERE<предикат>]
[GROUP BY < имя_поля > [, < имя_поля >…]]
[Having<предикат>]
[ORDER BY < имя_поля > [, < имя_поля >…]]
(только первые 2 обязательные)
В отличие от предыдущих команд, которые не возвращают результата, команда на выборку возвращает результирующий набор данных
SELECT *
FROM студент,
SELECT фамилия, год_рождения
FROM студент,
SELECT *
FROM студент,
WHERE №группы = 473602
С помощью зарезервированного слова DISTINCT устраняются повторы строк в результирующем наборе данных:
SELECT DISTINCT год_рождения
FROM студент
WHERE №группы = 473602
В предложении ORDER BY указываются поля по которым выполняется сортировка строк результирующего набора данных ( в порядке убывания их приоритета).
С помощью ASC и DESC можно указать соответственно возраст или убывающий порядок сортировки для которого поля, входящего в предложение ORDER BY (по умолчанию – сортировка по возрастанию(ASC)).
SELECT *
FROM студент
ORDER BY год_рождения DESC, фамилия
Использование агрегатных функций
Агрегатная функция предназначена для подсчета итоговых значений, применительно ко всему набору данных, определяемому командами:
COUNT –подсичтать число строк или значения поля, отличных от нуля.
SUM -суммарное значение
AVG-среднее значение
MAX/MIN – max и min значение
SELECT COUNT (*), COUNT (год_рождения),
COUNT (DISTINCT год_рождения)
FROM студент
WHERE №группы = 473602
SELECT MIN(оценка), AVG(оценка), MAX(оценка), SUM(оценка)
FROM экзамен
WHERE семестр = 3 AND №зачетки = 12345;
Использование вычислительных полей
Вычисляемые поля- поля, содержащиеся в результирующем наборе данных, но отсутствующие в таблицах и представления БД.
SELECT фамилия, год_рождения – год_рождения AS возраст_поступления
FROM студент
WHERE №группы = 473602
AS( можно задать или вычисл. поля)
SELECT фамилия, год_поступления – год_рождения AS возраст_поступления
FROM студент
WHERE №группы = 473602
Выражение вычисляемых полей могут включать в себя имена полей, константы, агрегатные функции и знаки арифметических операций
При этом знак + используется для контрапенации(соединения, слиния) текстовых значений.
SELECT AVG(год_поступленеия – год_рождения)
AS средний возраст
FROM студент
Язык sql: группировка строк набора данных
Команда выборки данных с предложением GROUP BY позволяет группировать строки набора данных на основе значений одного или нескольких полей и для каждой группы подсчитать итоговые данные с помощью агрегатных функций.
SELCT факультет, COUNT(*)
FROM группа
GROUP BY факультет
SELECT год_рождения, COUNT(*)
FROM группа
WHERE №группы = 473602
GROUP BY год_рождения
SELECT предмет, семестр, MIN(оценка), AVG(оценка), MAX(оценка)
FROM экзамен
GROUP BY предмет, семестр
SELECT год_поступления, COUNT(*)
FROM студент
WHERE год_поступления >= 2008
GROUP BY год_поступления
В предложении SELECT, как правило, фигурируют поля, содержащиеся в предложении GROUP BY, а также поля, используемые для подсчета итоговых данных.
Команда выборки данных группировкой может включать в себя предложение HAVING, которое, как и предложение WHERE , задает условия отбора для отдельных строк, то HAVING – для групп строк, определяемых предложением GROUP BY. Поэтому в YFVING обязательно должна быть указана хотя бы 1 из агрегатных функций, фигурирующих в SELECT, в то время как, в WHERE это нудопустимо. Т.о. результирующий набор данных формируется в 2 этапа:
сначала выполняется обычная группировка и подсчет итоговых данных
подсчет итоговых данных, а потом к получаемому набору данных меняются условия отбора, задаваемые
HAVING
SELECT факультет, COUNT(*)
FROM группа
GROUP BY факультет
HAVING COUNT(*) <=15
SELECT год_поступления, COUNT(*)
FROM студент
WHERE год_поступления >= 2002
GROUP BY год_поступления
HAVING COUNT(*) > 15