Главная страница
Навигация по странице:

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

  • Employee Language name language department Dilbert

  • Wendy Scala Engineering Wendy

  • Wally Engineering Wendy Engineering Employee Language

  • Wally Python Wendy Scala Wendy

  • Язык управления данными (DML)

  • СУБД презенетация. Лек_2_СУБД_. Субд. Стратегии работы с внешней памятью Лектор доцент кафедры Мультимедийные технологии, туит, Варламова Л. П


    Скачать 430.99 Kb.
    НазваниеСубд. Стратегии работы с внешней памятью Лектор доцент кафедры Мультимедийные технологии, туит, Варламова Л. П
    АнкорСУБД презенетация
    Дата13.01.2022
    Размер430.99 Kb.
    Формат файлаpptx
    Имя файлаЛек_2_СУБД_.pptx
    ТипДокументы
    #329901

    СУБД. Стратегии работы с внешней памятью

    Лектор: доцент кафедры «Мультимедийные технологии», ТУИТ, Варламова Л.П.

    Содержание

    • Стратегии работы с внешней памятью
    • Реляционная модель данных

     Стратегии

    • СУБД с непосредственной записью
    • СУБД с отложенной записью

    СУБД с непосредственной записью

    — это СУБД, в которых все измененные блоки данных незамедлительно записываются во внешнюю память при поступлении сигнала подтверждения любой транзакции. Такая стратегия используется только при высокой эффективности внешней памяти.

    СУБД с отложенной записью

    — это СУБД, в которых изменения аккумулируются в буферах внешней памяти до наступления любого из следующих событий:

      • контрольной точки;
      • конец пространства во внешней памяти, отведенное под журнал. СУБД выполняет контрольную точку и начинает писать журнал сначала, затирая предыдущую информацию;

    СУБД с отложенной записью

    - останов. СУБД ждёт, когда всё содержимое всех буферов внешней памяти будет перенесено во внешнюю память, после чего делает отметки, что останов базы данных выполнен корректно;

    - при нехватке оперативной памяти для буферов внешней памяти.

    • Такая стратегия позволяет избежать частого обмена с внешней памятью и значительно увеличить эффективность работы СУБД

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

    • Модель представляет собой фиксированную структуру математических понятий, которая описывает то, как будут представлены данные. Базовой единицей данных в пределах реляционной модели является таблица.

    Таблица

    • Таблица - это базовая единица данных. В реляционной алгебре она называется «отношение» (relation). Состоит из столбцов (columns), которые определяют конкретные типы данных. Данные в таблице организованы в строки (rows), которые содержат множества значений столбцов.

    Язык описания данных (DDL)

    В SQL для создания таблицы используется оператор CREATE TABLE. Этот оператор является примером языка описания данных (DDL). DDL служит для описания структуры базы данных. Пример использования:

    CREATE TABLE employee (

    emp_name VARCHAR(30),

    dep_id INTEGER

    )

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

    При создании таблицы могут быть использованы различные «ограничения» (constraints), которые содержат правила, указывающие, какие данные представлены в ней. Одним из самых используемых ограничений является первичный ключ (primary key constraint), который гарантирует, что каждая строка таблицы должна содержать уникальное значение. Первичный ключ может состоять из одного или нескольких столбцов. Первичные ключ, состоящие из нескольких столбцов, также называются «составными» (composite).

    Пример создания первичного ключа:

    CREATE TABLE employee (

    emp_id INTEGER,

    emp_name VARCHAR(30),

    dep_id INTEGER,

    PRIMARY KEY (emp_id)

    )

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

    • В то время как одна таблица имеет первичный ключ, другая таблица может иметь ограничение, описывающее, что её строки ссылаются на гарантированно существующие строки в первой таблице. Это реализуется через создание в «удалённой» таблице («потомке») столбца (может быть и несколько), значениями которого являются значения первичного ключа из «локальной» таблицы («родителя»).
    • Вместе наборы этих столбцов составляют внешний ключ (foreign key constraint), который является механизмом базы данных, гарантирующим что значения в «удалённых» столбцах присутствуют как первичные ключи в «локальных». Это ограничение контролирует все операции на этих таблицах: добавление / изменение данных в «удалённой» таблице; удаление / изменение данных в «родительской» таблице. Внешний ключ проверяет, чтобы данные корректно присутствовали в обоих таблицах. Иначе операции будут отменены.

    CREATE TABLE department (

    CREATE TABLE department (

    dep_id INTEGER,

    dep_name VARCHAR(30),

    PRIMARY KEY (dep_id)

    )

    CREATE TABLE employee (

    emp_id INTEGER,

    emp_name VARCHAR(30),

    dep_id INTEGER,

    PRIMARY KEY (emp_id),

    FOREIGN KEY (dep_id)

    REFERENCES department(dep_id)

    )

    Нормализация

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

    Классический пример денормализованных данных:


    Employee Language

    name

    language

    department

    Dilbert

    C++

    Systems

    Dilbert

    Java

    Systems

    Wally__Engineering_Wendy__Engineering_Employee_Language'>Wally

    Python

    Engineering

    Wendy

    Scala

    Engineering

    Wendy

    Java

    Engineering

    Employee Department

    name

    department

    Dilbert

    Systems

    Wally

    Engineering

    Wendy

    Engineering

    Employee Language

    name

    language

    Dilbert

    C++

    Dilbert

    Java

    Wally

    Python

    Wendy

    Scala

    Wendy

    Java

    Ограничения данных, такие как первичные и внешние ключи, предназначены как раз для достижения состояния нормализации.

    • «Employee Department -> name» - первичный ключ;
    • «Employee Language -> name, language» - составной первичный ключ;
    • «Employee Language -> name», в свою очередь, - внешний ключ, на поле «Employee Department -> name».

    Язык управления данными (DML)

    • После того как определена схема базы данных и таблиц, в них можно помещать данные и изменять их с помощью DML, который реализован частью конструкций SQL.

    Вставка (insert)

    Новые строки добавляются с помощью команды INSERT. Эта команда содержит часть VALUES, в которой прописаны данные для каждой добавляемой строки:

    VALUES (1, 'dilbert', 1);

    VALUES (2, 'wally', 1);

    Обновление (Update)

    Команда UPDATE служит для изменения данных в существующих строках, использую параметр WHERE для фильтрации строк по какому-либо условию и параметр SET для установки нового значения в нужный столбец:

    UPDATE employee SET dep_id=7 WHERE emp_name='dilbert'

    Удаление (Delete)

    Команда DELETE служит для удаления строк. Также как и UPDATE использует параметр WHERE для выборки нужных строк:

    DELETE FROM employee WHERE dep_id=1

    Запросы (Queries)

    Ключевой особенностью SQL является возможность построения запросов к данным. Для этого используется команда SELECT. Также как и в командах UPDATE и DELETE в ней присутствует параметр WHERE.


    emp_id

    emp_name

    1

    wally

    2

    dilbert

    5

    wendy

    Команда SELECT из примера выше имеет следующие части:

    • Параметр FROM указывает таблицы, из которых выбираются строки.
    • Параметр WHERE используется для фильтрации выбираемых строк по какому-либо условию.
    • Между словами SELECT и FROM расположен список столбцов, которые необходимо показать из каждой отфильтрованной строки.

    Сортировка

    К команде SELECT можно добавить параметр ORDER BY задающий по какому полю сортировать результаты:

    SELECT emp_id, emp_name FROM employee WHERE dep_id=12 ORDER BY emp_name


    emp_id

    emp_name

    2

    dilbert

    1

    wally

    5

    wendy

    Объединения (Joins)

    • Параметр JOIN помещается внутри блока FROM, между именами объединяемых таблиц. Он, в свою очередь, в себе содержит параметр ON, который отвечает за критерий объединения строк из разных таблиц.

    SELECT e.emp_id, e.emp_name, d.dep_name

    FROM employee AS e

    JOIN department AS d

    ON e.dep_id=d.dep_id

    WHERE d.dep_name = 'Software Artistry'


    emp_id

    emp_name

    dep_name

    2

    dilbert

    Software Artistry

    1

    wally

    Software Artistry

    5

    wendy

    Software Artistry


    написать администратору сайта