Автор: Сергей Кузнецов | Московский государственный университет имени М.В.Ломоносова
Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
 
Уровень:
Специалист
Длительность:
22:03:00
Студентов:
8464
Выпускников:
629
Качество курса:
3.85 | 3.50
Курс посвящен описанию базовых средств языка SQL в соответствии со стандартом SQL:2003. Задача состоит в том, чтобы представить язык как специфическую модель данных, происходящую от реляционной модели, но значительно от нее отличающуюся. В соответствии с общими принципами представления модели данных в курсе представляется структурная часть модели – средства определения таблиц и представлений, целостная часть – средства определения ограничений целостности и триггеров, а также манипуляционная часть – оператор SELECT. Для полноты также обсуждаются средства обновления баз данных, контроля доступа, управления транзакциями, сессиями и подключениями к серверу баз данных.
Язык SQL появился в 1974 г. при выполнении исследовательского проекта System R компании IBM. Тогда и долгое время спустя считалось, что язык SQL является практической реализацией идей реляционной модели данных, а многие пользователи языка и сегодня придерживаются того же мнения. Однако в действительности эта точка зрения является неправильной, а данный курс направлен на то, чтобы обеспечить правильное понимание модели данных языка SQL. Следуя общим принципам определения модели данных, в первых двух лекциях курса мы описываем основные понятия структурной части модели данных SQL – типы данных и средства определения базовых таблиц. В этих же лекциях рассматривается целостная часть модели: средства определения целостности на уровне доменов, столбцов, таблиц и баз данных в целом. Следующие четыре лекции посвящены обсуждению различных аспектов манипуляционной части модели данных SQL, которая существенно сложнее традиционных алгебраических и логических механизмов реляционной модели данных. В лекции 7 рассматриваются средства языка SQL, предназначенные для обновления содержимого существующих баз данных, а также механизм определения и функционирования триггеров. Восьмая лекция посвящена обсуждению средств авторизации доступа, управления транзакциями, сессиями и подключениями. Наконец, завершающая курс лекция 9 содержит описание так называемых «объектных» расширений языка SQL, сближающих синтаксис языка с синтаксисом языковых средств объектно-ориентированных СУБД и еще более отдаляющих модель языка SQL от реляционной модели данных.
 

План занятий

Занятие
Заголовок <<
Дата изучения
Лекция 1
2 часа 42 минуты
Общее введение, типы данных и средства определения доменов
Оставшаяся часть этого курса посвящается языку реляционных баз данных SQL. В курсе о реляционных базах данных невозможно обойтись без материала, который относится к этому языку. Это связано совсем не с тем, что язык представляет собой особое достижение в области реляционных БД. Напротив, многие черты SQL, начиная с самых первых его вариантов, противоречили принципам реляционной модели данных, заложенным Эдгаром Коддом. С другой стороны, спецификация языка SQL, по своей сути, является завершенной спецификацией модели данных, которая сегодня играет роль суррогата реляционной модели. Если бы мы попытались обойтись в этом курсе без обсуждения языка SQL, курс был бы полностью оторван от жизни. Сегодня SQL является lingua franca в мире баз данных. Интерфейсы, основанные на SQL, поддерживаются почти во всех используемых СУБД, далеко не все из которых первоначально разрабатывались как реляционные системы. И похоже, что эта ситуация при жизни нынешнего поколения радикальным образом не изменится. Кроме того, язык сам по себе достаточно интересен. В нем нашел отражение многолетний практический опыт многих людей, и он впитал в себя многие положительные (и отрицательные) черты других языков и подходов (не только языков баз данных и не только реляционного подхода). В данной лекции после небольшой исторической справки и краткого введения в структуру языка SQL будут рассмотрены типы данных, допустимые в языке SQL и в SQL-ориентированных базах данных, а также языковые средства определения, изменения определения и отмены определения доменов.
Оглавление
    -
    Лекция 2
    2 часа 9 минут
    Средства определения базовых таблиц и ограничений целостности
    Лекция посвящена средствам языка SQL, позволяющим определять (создавать) базовые таблицы, изменять определения базовых таблиц и отменять их. Поскольку важными составляющими определения базовой таблицы являются определения ограничений на уровнях столбцов и таблицы целиком, мы сочли уместным включить в эту же лекцию материал, посвященный средствам определения ограничений целостности общего вида (не привязанных к определениям базовых таблиц), изменения и отмены таких определений.
    Оглавление
      -
      Лекция 3
      1 час 27 минут
      Общая характеристика оператора SELECT и организация списка ссылок на таблицы в разделе FROM
      В этой и следующих трех лекциях рассматривается важнейший оператор языка SQL - оператор SELECT, предназначенный для выборки данных из SQL-ориентированной базы данных. Этот оператор имеет довольно сложную и развитую структуру, но, по нашему мнению, его необходимо знать любому специалисту, так или иначе связанному с использованием баз данных; поэтому в нашем курсе ему уделяется так много внимания. Первая лекция носит подготовительный характер. В ней мы рассматриваем виды скалярных выражений, используемые, прежде всего, в конструкциях оператора SELECT, обсуждаем базовую семантику выполнения этого оператора и анализируем принципы и разновидности указания таблиц, из которых производится выборка данных.
      Оглавление
        -
        Лекция 4
        1 час 46 минут
        Предикаты раздела WHERE оператора SELECT
        В этой лекции мы продолжим рассматривать механизм выборки данных языка SQL - оператора SELECT. Лекция целиком посвящена видам условных выражений, которые могут содержаться в разделе WHERE оператора выборки. Определяются и иллюстрируются на примерах запросов все виды предикатов, специфицированных в стандарте SQL:1999.
        Оглавление
          -
          Лекция 5
          2 часа 34 минуты
          Группировка и условия раздела HAVING, порождаемые и соединенные таблицы
          В этой лекции мы завершаем обсуждение основных (традиционных) конструкций оператора SELECT языка SQL. В разделе "Агрегатные функции, группировка и условия раздела HAVING" обсуждаются разделы GROUP BY и HAVING. Основной акцент делается на способах конструирования условий раздела HAVING. На примерах демонстрируется, что разделы GROUP BY и HAVING действительно полезны, а иногда и необходимы при формулировке запросов с вызовами агрегатных функций. В разделах "Ссылки на порождаемые таблицы в разделе FROM" и "Более сложные конструкции оператора выборки" мы возвращаемся к разновидностям ссылок на таблицу в разделе FROM и последовательно обсуждаем порождаемые таблицы, соединенные таблицы и порождаемые таблицы с горизонтальной связью.
          Оглавление
            -
            Лекция 6
            1 час 18 минут
            Средства формулировки аналитических и рекурсивных запросов
            В этой лекции мы завершаем обсуждение средств выборки данных языка SQL коротким описанием сравнительно недавно появившихся в языке SQL средств формулировки аналитических и рекурсивных запросов.
            Оглавление
              -
              Лекция 7
              2 часа 55 минут
              Средства манипулирования данными
              Название этой лекции не совсем правильно отражает ее реальное содержание. Собственно средствам языка SQL, предназначенным для обновления базы данных, посвящается только один из трех основных разделов. Однако и следующие два раздела непосредственно примыкают к этой теме. В разделе "Представления, над которыми возможны операции обновления" рассматриваются возможности выполнения операций обновления базы данных через представляемые таблицы. Обсуждается проблема в целом, подход к ее решению, применявшийся в ранних вариантах стандарта SQL, и решение, принятое в стандарте SQL:1999. Последний основной раздел лекции посвящается механизму триггеров, специфицированному в стандарте SQL:1999. Здесь тоже имеется явная связь с основной темой лекции, потому что главным условием срабатывания триггера является выполнение некоторой операции обновления базы данных, и действия, выполняемые в триггерной процедуре, как правило, тоже связаны с обновлением базы данных.
              Оглавление
                -
                Лекция 8
                2 часа 43 минуты
                Средства языка SQL для обеспечения авторизации доступа к данным, управления транзакциями, сессиями и подключениями
                В этой лекции обсуждаются основные средства SQL:1999, предназначенные для регулирования работы с базами данных. Сначала рассматривается механизм авторизации доступа к объектам SQL-ориентированной базы данных, основанный на понятиях идентификатора пользователя, имени роли и привилегии доступа. Затем описываются особенности SQL-транзакций и основные языковые средства, воздействующие на поведение транзакций. Наконец, обсуждаются зафиксированные в стандарте SQL средства управления подключением к серверу баз данных.
                Оглавление
                  -
                  Лекция 9
                  2 часа 14 минут
                  Объектные расширения
                  В последней лекции этого курса мы кратко изложим суть объектных расширений, которые включены в стандарт SQL:1999. Лекция основана не на официальном тексте стандарта (он очень формален и скучен), а на книге Джима Мелтона "Advanced SQL:1999. Understanding Object-Relational and Other Advanced Features" (Morgan Kaufmann Publishers, 2003), которая, по сути, является неформальным описанием семантики (rationale) соответствующей части языка. В указанной книге объектным расширениям языка SQL посвящено более 200 страниц. Естественно, наше изложение будет гораздо более кратким.
                  Оглавление
                    -
                    1 час 40 минут
                    -
                    Алексей Ковтун
                    Алексей Ковтун

                    При попытке исполнения запроса:

                    CREATE DOMAIN EMP_NO AS INTEGER

                        CHECK (VALUE BETWEEN 1 AND 10000);

                    Выдается ошибка: Неизвестный тип объекта "DOMAIN" в интсрукции CREATE, DROP или ALTER. 

                    Используется SQL Server MS SQL 2008R2

                    Александра Каева
                    Александра Каева