Презентация на тему "Базы данных"

Презентация: Базы данных
1 из 136
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
0.0
0 оценок

Комментарии

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

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


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

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

Посмотреть и скачать презентацию по теме "Базы данных", включающую в себя 136 слайдов. Скачать файл презентации 2.84 Мб. Большой выбор powerpoint презентаций

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

Содержание

  • Презентация: Базы данных
    Слайд 1

    Базы данных

  • Слайд 2

    Основные понятия

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

  • Слайд 3

    В состав языковых средств современных СУБД входят

    Язык описания данных - предназначенный для описания логической структуры данных. Язык манипулирования данных – обеспечивающий выполнение основных операций над данными – ввод, модификацию выборку Язык структурированных запросов SQL (Structured Query Language) – обеспечивает управление структурой БД и манипулирование данными, а также является стандартным средством доступа к удаленным БД Язык запросов по образцу (QBE – Query by Example) – обеспечивает визуальное конструирование запросов к БД

  • Слайд 4

    Требования к информации в БД

    Непротиворечивость Неизбыточность Целостность

  • Слайд 5

    Типы СУБД

    Локальные – все части СУБД располагаются на одном компьютере пользователя БД (Paradox, dBase, Microsoft Access). Сетевые – существует сервер на котором хранится БД. Пользователь с клиентского компьютера посылает запрос по сети на данные и сервер возвращает запрашиваемые данные (MySQL, MS SQL, Firebird, Oracle).

  • Слайд 6

    Архитектура СУБД

  • Слайд 7

    Модель данных (МД)

    Это формальная теория представления и обработки данных. Иерархическая МД представляет собой дерево, состоящее из объектов различных уровней. Сетевая МД представляет собой граф вершинами которого являются хранимые объекты предметной области. Реляционная МД представляет собой набор связанных таблиц. Объектная ориентированная МД представляет собой набор взаимосвязанных объектов.

  • Слайд 8

    Иерархическая МД

  • Слайд 9

    Сетевая МД

  • Слайд 10

    Основные понятия

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

  • Слайд 11

    Реляционная МД

  • Слайд 12

    Таблица БД

  • Слайд 13

    Объектно-ориентированная МД

  • Слайд 14

    Модель сущность-связь (Entity-relationship model, ER-модель)

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

  • Слайд 15

    Основная цель создания ER-модели

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

  • Слайд 16

    Концепции ER-модели

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

  • Слайд 17

    Типы сущностей (entry type)

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

  • Слайд 18

    Примеры сущностей с физическим и концептуальным существованием

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

  • Слайд 19

    Сущность

    Экземпляр типа сущности, который может быть идентифицирован уникальным образом. Каждый тип сущности идентифицируется именем и списком свойств. Типы сущности могут быть слабыми (существование которого зависит от какого-то другого типа сущности) и сильными (существование не зависит от какого-то другого типа сущности)

  • Слайд 20

    Способы представления типов сущностей на диаграмме

    Сильные – прямоугольник с именем сущности внутри него Слабые – прямоугольник с именем сущности внутри него но с двойным контуром

  • Слайд 21

    Атрибуты

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

  • Слайд 22

    Домен атрибута

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

  • Слайд 23

    Атрибуты

    Делятся на просты и составные. Простой атрибут – атрибут, состоящий из одного компонента с независимым существованием. Пример: зарплата, название. Составной атрибут – атрибут, состоящий из нескольких компонентов характеризующихся независимым существованием. Пример: адрес, ФИО.

  • Слайд 24

    Также делятся на однозначные, многозначные, производные. Однозначные – атрибут который содержит одно значение для одной сущности. Пример: Пол, зарплата, имя. Многозначные – атрибут содержащий несколько значений для одно сущности. Пример: телефон. Производные атрибут: атрибут который представляет значение производное от значения связанного с ним атрибут или некоторого множества атрибутов, принадлежащих некоторому (не обязательно данному) типу сущности.

  • Слайд 25

    Ключи

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

  • Слайд 26

    Представление атрибутов на диаграммах

    На диаграммах атрибуты изображаются в виде эллипсов, присоединенных линией к соответствующей сущности и помеченных именем атрибута. Эллипс окружен пунктирной линией, если атрибут является производным, и двойным контуром, если атрибут является многозначным. Если атрибут является составным, его атрибуты-компоненты изображаются в виде присоединенных к нему элипсов.

  • Слайд 27

    Первичный ключи обозначается эллипсом c подчеркнутым текстом. На диаграммах все атрибуты должны иметь одинаковый размер и текст должен быть одинакового размера

  • Слайд 28

    Атрибуты (графическое представление)

  • Слайд 29

    Типы связей

    Тип связи (relationship type) осмысленная ассоциация между сущностями разных типов. Каждому типу связи присваивается имя которое описывает его функцию. Например сущность «Завод» связана с сущностью «Печное изделие» посредством связи «Производит»

  • Слайд 30

    Связь

    Ассоциация между сущностями, включающая по одной сущности из каждого участвующего в связи типа сущности. Связи указывают на отдельные экземпляры сущностей, объединяемые ими.

  • Слайд 31

    Связи

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

  • Слайд 32

    Связи

  • Слайд 33

    Степень связи

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

  • Слайд 34

    Примеры связей

  • Слайд 35
  • Слайд 36

    Ролевые имена

    Ролевые имена определяют назначения каждой сущности в связи и также используются когда две сущности связаны двумя различными связями.

  • Слайд 37

    Примеры связей

  • Слайд 38

    Две сущности связаны двумя связями

  • Слайд 39

    Атрибуты связей

    Атрибуты могут также принадлежать связям, например сущность «Товар» может связна с «Склад» с помощью связи «Хранение» и у нее есть атрибут «количество».

  • Слайд 40
  • Слайд 41

    Структурные ограничения

    Ограничения накладываемые на сущности участвующие в некоторых связях, являются отражением определенных требований реального мира Показатель кардинальности – описывает количество возможных связей для каждой из сущности. Наиболее распространенными бинарными связями являются с показателями кардинальности «один к одному», «один ко многим» и «многие ко многим».

  • Слайд 42

    Связь один к одному

  • Слайд 43

    Связь один ко многим

  • Слайд 44

    Связь многие ко многим

  • Слайд 45

    Требование к информации в БД

    Быстрый доступ к данным Отсутствия дублирования (повторения) данных Целостность данных

  • Слайд 46

    Нормализация данных

    Это процесс проектирования БД с использованием метода нормальных форм и заключается в последовательном переводе по определенным правилам отношений из первой нормальной формы к нормальным формам более высокого порядка.

  • Слайд 47

    Нормальные формы (НФ)

    1 НФ 2 НФ 3 НФ Усиленная третья нормальная форма (нормальная форма Бойса-Кодда) 4 НФ 5 НФ

  • Слайд 48

    Требования к 1 НФ

    Поля содержат неделимую (атомарную) информацию. В таблице отсутствуют повторяющиеся группы полей

  • Слайд 49

    Требования к 2 НФ

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

  • Слайд 50

    Требования к 3 НФ

    Таблица должна удовлетворять требованиям второй нормальной формы Ни одно из не ключевых полей не должно однозначно идентифицироваться значением другого не ключевого поля

  • Слайд 51

    Методика преобразования ER-модели в реляционную

    Преобразованием ER-модели в реляционную идет поэтапно т.е. сначала преобразуются типы сущностей, а потом преобразуются типы связей.

  • Слайд 52

    Преобразование типов сущностей с различными видами атрибутов

  • Слайд 53

    Преобразование связей один к одному

  • Слайд 54
  • Слайд 55

    Преобразование унарной связи

  • Слайд 56

    Преобразование бинарной связи один ко многим

  • Слайд 57

    Преобразование бинарной связи многие ко многим

  • Слайд 58

    Преобразование тетрарной связи

  • Слайд 59

    Преобразование кватернарной связи

  • Слайд 60

    Физическая модель данных

    Физическая модель данных описывает данные средствами конкретной СУБД. Физическая модель строится на основании логической модели данных. СУБД бываю локальные (Microsoft Access, Paradox, dBase) и клиент серверные (Oracle, MS SQL Server, MySQL). Реляционная модель состоит из таблиц.

  • Слайд 61

    Таблицы MS SQL(правила именования)

    могут содержать буквы английского алфавита, цифры и _; не могут содержать пробелы; не могут повторять существующие имена других таблиц в этой же директории; должны быть мнемоническими (т.е. отражать содержание таблицы). Примеры именования таблиц: users, products, seasons, customers, tp_sclad.

  • Слайд 62

    Поля таблиц MS SQL

    могут иметь длину до 25 символов; не должны содержать пробелы; могут содержать буквы английского алфавита, цифры и _; не могут повторять имя другого поля в этой же таблице; должны отражать содержание поля. Примеры названия полей: ID_User, Name, Caption, FK_user

  • Слайд 63

    Типы данных MS SQL

    VARCHAR - алфавитно-цифровые (символьные) поля. Могут содержать буквы; Поле может быть от 1 до 255 символов; TEXT – большой текст до 65399 символов INT– хранят целы числа. Диапазон зависит от свойства размер поля MONEY - денежные поля. В точности похожи на числовые поля, но округляются до 4 символов после запятой; BIT – содержит значения Да или Нет, True или False DATETIME - поля даты. Могут содержать любые допустимые даты между 1 января 100 года и 31 декабря 9999 года. FLOAT – вещественный тип

  • Слайд 64

    Создание связей между таблицами

    Контекстное меню – отношения – добавить.

  • Слайд 65

    Создание первичного ключа

    Контекстное меню – Задать первичный ключ Для обеспечения автоматического назначения значения требуется в свойствах поля указать:

  • Слайд 66

    Архитектуры доступа к данным

    Borland Database Engine (BDE) – движок доступа к БД от корпорации Borland Open Database Connectivity (ODBC) – программный интерфейс доступа к БД ActiveX Data Objects (ADO) - интерфейс программирования приложений для доступа к даннымоснованный на технологии компонентов ActiveX и др.

  • Слайд 67

    Схема доступа к данным через ADO

    ADO - Компоненты Delphi обеспечивающие подключение к БД, функциональность наборов данных, работу с транзакциями и др. OLE DB - — набор интерфейсов, основанных на COM, которые позволяют приложениям обращаться к данным, хранимым в разных источниках информации или хранилищах данных с помощью унифицированного доступа.

  • Слайд 68

    Компонент TADOConnection

    Компонент TADOConnection предназначен для управления соединением с объектами хранилища данных ADO. ConnectionString: WideString; - хранит строку подключения к БД; Connected: boolean; - определяет соединен ли компонент с БД

  • Слайд 69

    Создание строки подключения

    Щелкаем по свойству ConnectionString, появляется окно.

  • Слайд 70

    Щелкаем по кнопке Build – создать и выбираем поставщика OLE DB (Microsoft OLE DB Provider for SQL Server). Нажимаем далее.

  • Слайд 71

    Результат: Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=fondbase;Data Source=ICEBERGPC\SQLEXPRESS

  • Слайд 72

    Наборы данных ADO

  • Слайд 73

    Наборы данных

    Копия одной или нескольких таблиц, хранящаяся в памяти для быстрого доступа. TDataSet – базовый класс для всех наборов данных; TCustomADODataset – базовый класс для наборов данных ADO; TADOTable – позволяет загружать в память и манипулировать данными одной таблицыБД TADOQuery – осуществляет реляционный доступ к одной или нескольким таблицам TADOStoredProc – выполняет хранимые процедуры в клиент-серверных СУБД

  • Слайд 74

    Архитектура приложения БД

  • Слайд 75

    Свойства TADOTable

    Connection – компонент соединения с базой данных. TableName – название таблицы, которая будет отображаться в наборе данных. Activity – определяет открыт ли набор данных или нет.

  • Слайд 76

    Источник данных (TDataSource)

    Компонент являющийся посредником между набором данных (TDataSet) и компонентами отображающими данные (DataControls). Главное свойство DataSet указывает набор данных с которым связан источник данных.

  • Слайд 77

    Визуальные компоненты

    Позволяют выводить и редактировать в визуальном режиме данные из источника данных. Связываются с набором данных (TDataSet)посредством источника данных (TDataSource) с помощью свойства DataSource. DBGrid – сетка строк, осуществляет вывод целой таблице; DBNavigator – компонент позволяющий осуществлять основные операции с набором данных (переход с записи на запись, добавление, редактирование и удаление записи, подтверждение и отмена изменений)

  • Слайд 78

    DBText – осуществляет вывод не редактируемого текста из одного поля набора данных. Аналог Label. Свойство Fieldname определяет название поля отображаемого в компоненте. DBEdit – осуществляет вывод редактируемого текста из одного поля набора данных. Аналог Edit. Свойство Fieldname определяет название поля отображаемого в компоненте. DBMemo – выводит многострочный текст из одного поля набора данных. DBImage – выводит изображение из поля базы данных, поля должно иметь тип Graphic.

  • Слайд 79

    Создание вычисляемых полей

    Вычисляемое поля позволяет вычислять значения поля определенной записи на основании других данных. Для создания вычисляемого поля необходимо два раза щелкнуть по набору данных, вызвать контекстное меню и выбрать пункт «New field», в котором необходимо указать следующие параметры: Name – имя поля; Type – тип поля; Size – размер поля, если поле строкового типа; FieldType – тип поля, необходимо указать Calculated.

  • Слайд 80

    Окно создания вычисляемого поля

  • Слайд 81

    Создание поля подстановки

    Поле подстановки позволяет установить значение внешнего ключа в одной таблице, значением первичного ключа другой таблице, при этом пользователь увидит значения главной таблице. Для создания вычисляемого поля необходимо два раза щелкнуть по набору данных, вызвать контекстное меню и выбрать пункт «New field», в котором необходимо указать следующие параметры:

  • Слайд 82

    Параметры поля подстановки

    Name – имя поля; Type – тип поля; Size – размер поля, если поле строкового типа; FieldType– тип поля, необходимо указать Lookup. Key fields – имя внешнего ключа таблицы; DataSet – набор данных, данные которого будут отображаться в списке выбора; Lookup Keys – имя первичного ключа таблицы; Result Field – имя поля таблицы, данные которого будут отображаться в списке выбора

  • Слайд 83

    Окно создание подстановочного поля

  • Слайд 84

    Программный доступ к записям набора данных

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

  • Слайд 85

    Навигация по набору данных (НД)

    Осуществляется с помощью курсора НД, указывающего на текущую запись в НД. Для навигации используются следующие свойства и методы: EOF: boolean – свойство равное True если курсор находится на последней записи НД; BOF: boolean – свойство равное True если курсор находится напервой записи НД; Next – перемещает курсор на следующую запись; Last – перемещает курсор на последнюю запись; Prior – перемещает курсор на предыдущую запись; First – перемещает курсор на первую запись;

  • Слайд 86

    Последовательная навигация по записям

    // В прямом порядке With tUsers do Begin First; while not EOF do begin // делаем какие либо действия Next; end Еnd // В обратном порядке With tUsers do Begin Last; while not BOF do begin // делаем какие либо действия Prior; end Еnd

  • Слайд 87

    Доступ к значениям записей

    Доступ можно осуществлять по имени и по номеру поля, для доступа к данным необходимо указывать их тип. tUsersName.AsString tUsers.Fields[0].AsInteger tUsers.FieldByName('Name').AsFloat Можно и без указания типа, тогда тип будет автоматически указываться компилятором. tUsers[‘Name’]:=‘Иван’;

  • Слайд 88

    Редактирование записей

    Записи можно вставлять, изменять, удалять, делается это с помощью следующих методов: Insert, Append – добавляет новую запись в НД Update – редактирует текущую запись НД; Post – подтверждает внесение новой записи или изменение существующей; Cansel – отменяет внесение новой записи или изменение существующей; Delete – удаляет текущую запись

  • Слайд 89

    Примеры редактирование записей

    //Вставка tUsers.Append; tUsersName.asstring:=‘Иван’; tUsersSecondName.asstring:=‘Петров’; tUsersSallary.asFloat:=20000; tUsers.Post; //Изменение tUsers.Edit; tUsersName.asstring:=‘Иван’; tUsersSecondName.asstring:=‘Петров’; tUsersSallary.asFloat:=20000; tUsers.Post; //Удаление if MessageDlg('Вы действительно хотите удалить текущую запись',mtWarning,[mbYes,mbNo],0)=mrYes then begin tUsers.Delete; end;

  • Слайд 90

    Состояния НД

    dsInactive - НД закрыт dsBrowse - Данные отображаются но не редактируются dsEdit - Активная запись редактируется dsInsert - В НД вставлена новая запись dsSetKey - Происходит установка ключа для поиска данных с помощью метода SetKey dsCalcFields - Происходит вычисление, вычисляемых полей в НД dsFilter - Происходит фильтрация записей dsOpening – НД открывается

  • Слайд 91

    Использование закладок

    VarSavePlace: TBookmark; begin with TUsers dobegin { Получение закладки } SavePlace := GetBookmark; try // Что то делаем // Переходим к ранее установленной закладки GotoBookmark(SavePlace); finally // Освобождаем закладку FreeBookmark(SavePlace); end; end; end;

  • Слайд 92

    Поиск записей в наборе данных

    Метод Locate ищет первую запись удовлетворяющую условию и если такая запись найдена, делает её текущей. function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; KeyFields – поле по которому происходит поиск записи KeyValues – искомое значение Options – настройки поиска (loCaseInsensitive – неучитывает разницу в регистре значений; loPartialKey – поиск по частичному соответствию) CustTable.Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey,loCaseInsensitive ]);

  • Слайд 93

    Метод Lookup

    Метод Lookup ищет запись в НД и в случае если её находит не делает текущей, а возвращает одно или несколько значений записи. function Lookup(const KeyFields: string; const KeyValues: Variant;constResultFields: string): Variant; ResultFields – результирующие поля Пример: VarV: Variant;C: Integer;A: String; begin V := Table1.Lookup('Company;State', VarArrayOf(['Blue Sports', 'OR']), 'CustNo;Addr1'); if not (VarType(V) in [varNull]) then begin C := V[0]; A := V[1]; ShowMessage(IntToStr(C) + ‘ ’ + A); end elseShowMessage('Search unsuccessful!'); end;

  • Слайд 94

    Фильтрация записей

    Отображение записей согласно определенного условия или нескольких условий. За фильтрацию отвечают, следующие свойства: Filter: string; – определяет условия фильтрации; Filtered: boolean; - определяет отфильтрован ли набор данных или нет. Пример фильтрации: Table1.Filter:=‘State = ‘+QuotedStr(‘CA’)+' or State =‘+ QuotedStr('MA‘); Table1.Filter:=‘(Custno > 1400) AND (Custno

  • Слайд 95

    События TDataSet

    События НД позволяют реагировать на различные операции с набором данных: фильтрацию, открытие, закрытие набора данных; вставку, изменение, удаление, изменение текущей записи; вычисление полей и др.

  • Слайд 96

    Событие OnFilterRecord

    Возникает при установки значения True в свойстве Filtered и имеет следующее определение: Procedure OnFilterRecord(DataSet: TDataSet; var Accept: Boolean); DataSet – ссылка на НД где происходит фильтрация данных; Accept – переменная определяющая попадет ли запись в отфильтрованный набор данных или нет.

  • Слайд 97

    Пример использования OnFilterRecord

    procedure TSummaryFilter(Dataset:TDataSet; var Accept: Boolean); begin Accept:=AnsiContainsText(Dataset.fieldbyname(‘Name’).AsString,’Иван’); Accept:=DataSet['AmountOfPurchase'] > StrToInt(Edit1.Text); Accept:=AnsiContainsStr(Dataset.fieldbyname(‘Family’).AsString,’Иванов’); end;

  • Слайд 98

    События отвечающие за отклик на операции с записями

  • Слайд 99

    Событие OnCalcFields

    Возникает при вычислении полей, которое происходит при открытие НД и отображение ранее не видимых записей в DBGrid. Пример вычисления поля. Procedure Table1OnCalcFields(DataSet: TDataSet); Begin if Table1Sex.AsBoolean then Table1CalcSex.AsString:=‘Мужской’ else Table1CalcSex.AsString:=‘Женский’; end

  • Слайд 100

    Поиск по индексированным полям

    Осуществляется с помощью метода SetKey, GotoKey. Table1.Active := False; // Закрываем НД Table1.IndexName := ’CityIndex’; // Определяем индекс по которому происходит поиск Table1.Active := True; // Открываем НД Table1.SetKey; // Включаем режим установки искомого ключа Table1.FieldByName(’City’).AsString := Edit1.Text; // Устанавливаем искомое значение Table1.GotoKey; // Перемещаемся к искомой записи, если она есть

  • Слайд 101

    Поиск на ближайшее соответствие

    Осуществляется с помощью метод FindNearest Table1.Active := False; // Закрываем НД Table1.IndexName := ’CityIndex’; // Определяем индекс по которому происходит поиск Table1.Active := True; // Открываем НД Table1.FindNearest([Edit1.Text]); //Поиск по ближайшему соответствию

  • Слайд 102

    Язык SQL

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

  • Слайд 103

    Операторы языка SQL

    Язык SQL представляет собой совокупность операторов.Операторы SQL делятся на: операторы манипуляции данными (Data Manipulation Language, DML) операторы определения данных (Data Definition Language, DDL) операторы определения доступа к данным (Data Control Language, DCL) операторы управления транзакциями (Transaction Control Language, TCL)

  • Слайд 104

    История развития SQL

  • Слайд 105
  • Слайд 106

    Преимущества SQL

    Независимость от конкретной СУБД - Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую. Наличие стандартов - Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка. Декларативность - С помощью SQL программист описывает только то, какие данные нужно извлечь или модифицировать. То, каким образом это сделать, решает СУБД непосредственно при обработке SQL-запроса.

  • Слайд 107

    Недостатки SQL

    Несоответствие реляционной модели данных Высокая избыточность Сложность Отступления от стандартов Сложность работы с иерархическими структурами

  • Слайд 108

    Оператор Insert

    Insert into (,…) Values(,…) Пример Insert into students (name,family,birthday,fk_group) Value (‘Иван’,’Иванов’,23.02.2000,1)

  • Слайд 109

    Оператор Update

    Update set =, =… Where Пример Update students set name=‘Иван’,family=‘Иванов’where id=5

  • Слайд 110

    Оператор Delete

    Delete from where Delete from students where Name=‘Иван’ = > =

  • Слайд 111

    Таблица БД Students Groups

  • Слайд 112

    Оператор Select

    Select ,… from ,… Where Order by Group by Having Union

  • Слайд 113

    Простой запрос Select id_students, firstname, secondname, sallary from students

  • Слайд 114

    Запрос из нескольких таблиц Select * from groups, students where students.fk_groups=groups.id_groups Select * from students s Inner join groups g on s.fk_groups=g.id_groups

  • Слайд 115

    Оператор Select

    Сортировка записей Select id_student, firstname, secondname, sallary from studentsorder by secondname,firstname

  • Слайд 116

    Сортировка в обратном порядке Select id_student, firstname, secondname, sallary from studentsorder by sallary desc

  • Слайд 117

    Оператор Select

    Отбор по диапазону Select id_student, firstname, secondname, sallary from students where sallary between 1500 and 3000

  • Слайд 118

    Выбор записейзначения полей которых начинается с определенной букв Select id_student, firstname, secondname, sallary from students where secondname like “Ив%”

  • Слайд 119

    Выбор записей значения полей которых содержит определенную букву Select * from students wherefirstname like “%кс%”

  • Слайд 120

    Выбор записей с определенными значениями полей Select * from students where id_students in (1,3,4)

  • Слайд 121

    Псевдонимы таблиц Select g.caption, s.firstname, s.secondname, s.sallary from students s,groupsg where s.fk_groups=g.id_groups

  • Слайд 122

    Агрегатные функции: Avg – среднее значение аргумента Count – количество вхождений аргумента Max – максимальное значение аргумента Min – минимальное значение аргумента Sum – суммарное значение аргумента

  • Слайд 123

    Select avg(sallary) from students Select count(*) as countg from groups

  • Слайд 124

    Группировка записей Select g.caption, sum(sallary) from students s, groups g where s.fk_groups=g.id_groups group by g.caption

  • Слайд 125

    Выбор записей с неповторяющимися значениями полей Select distinct s.firstname from students s

  • Слайд 126

    Использование дополнительного условия отбора Select g.caption, sum(sallary) from strudents s, groups g where s.fk_groups=g.id_groups group by g. caption having sum(sallary) > 3000

  • Слайд 127

    Оператор Select

    Выбор записей с неустановленными значениями полей Select * from students s where fk_groups is null

  • Слайд 128

    Выбор записей с установленными значениями полей Select * from students s where fk_groups not null

  • Слайд 129

    Объединение запросов select id_groups, caption,0 as typerec from groups union select id_students, secondname,1 as typerec from students Типы полей должны совпадать

  • Слайд 130

    выбор записей с использованием подзапросов Select * from students where sallary>(select avg(sallary) from students)

  • Слайд 131

    СвойстваTADOQuery

    Connection – компонент соединения с базой данных. SQL – содержит SQL запрос выбирающий данные в набор данных Activity – определяет открыт ли набор данных или нет.

  • Слайд 132

    Методы TADOQuery

    Open – открывает набор данных, выполняя при этом запрос возвращающий значение (Select); ExecSQL – Выполняет SQL-запрос не возвращающий набор данных (Insert, Update, Delete)

  • Слайд 133

    Статический запрос

    with Query1 do begin Close; // Закрываем набор данных SQL.Clear; // Очищаем текст SQL-запроса SQL.Add(‘select * from groups');//Устанавливаем SQL запрос Open;//Выполняем SQL запроси при этом запрос возвращает набор данных end;

  • Слайд 134

    Динамический запрос

    with Query1 do begin Close; // Закрываем набор данных SQL.Clear; // Очищаем текст SQL-запроса SQL.Add(‘select * from groupswhere caption=‘+QuotedStr(Edit1.text));//Устанавливаем SQL запрос Open;//Выполняем SQL запроси при этом запрос возвращает набор данных end;

  • Слайд 135

    Параметрический запрос

    with Query1 do begin Close; // Закрываем набор данных SQL.Clear; // Очищаем текст SQL-запроса SQL.Add('insertintogroups (name,fk_faculty) values (:name,:fk_faculty)');//Устанавливаем SQL запрос ParamByName('name').AsString:='07-15‘; // Устанавливаем значение параметра по имени Params[1].AsInteger:=1; // Устанавливаем значение параметра по номеру ExecSQL;//Выполняем SQL запрос end;

  • Слайд 136

    DBGrid

    Компонент отображающий сетку строк. Свойства: DataSource – источник данных откуда будут отображаться данные Columns – коллекция содержащаястолбцы набора данных. У каждого столбца есть следующие свойства FieldName – название поля откуда будут браться данные для отображения Caption – отображаемый заголовок столбца For i:=0 to DBGrid.Columns.count-1 do Begin ListBox.Items.Add(DBGrid.Columns[i].title.caption); End Fieldname:=DBGrid.Columns[ListBox1.itemindex].Fieldname;

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

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