РОССИЕВ Дмитрий Анатольевич БАЗА ДАННЫХ Ядро МИС План лекции 1. 2. 3. 4. 5. Определения, классификация БД Устройство БД Данные, хрянящиеся в БД Запросы к данным в БД Интерфейсы для работы с данными Цель и задачи лекции Ваша цель – усвоить и систематизировать знания о базах данных уметь применять эти знания при работе с медицинскими информационными системами ЗАДАЧИ 1.Знать основную терминологию баз данных 2.Понимать принцип работы баз данных Что такое База данных? Ядро любой информационной системы электронное хранилище данных, организованных во взаимосвязанные таблицы Еще одно определение! БД – это виртуальная модель части реального мира (предметной области), которая позволяет отражать внутреннюю, информационную сущность объектов, процессов, и, что очень важно, связей между ними. Модели автомобиля Макет автомобиля позволяет получить представление о его форме, размерах, дизайне Модель автомобиля в БД позволит мгновенно узнать, например, суммарную стоимость всех его деталей, весящих менее 122 грамм и сделанных из пластика. Человек – программа - БД Пользователь Пользователь Пользователь Пользователь ПО - МИС ПО - МИС БД ПО - МИС Принципиальные схемы реализации информационной системы «Толстый клиент» СЕРВЕР Программа База данных «Тонкий клиент» СЕРВЕР База данных Программа Зачем нужны БД? Систематизированное хранение больших объемов взаимосвязанных данных Одновременное коллективное пользование данными Быстрый поиск и обработка данных Легкое управление данными (добавление, изменение, удаление) Классификация баз данных Реляционные MS Access, MS SQL, MySQL, DB2, Oracle Dbase, FoxPro, Paradox Объектные Lotus (IBM) Объектно-реляционные Cache (Intersystems) (постреляционные) Изобретение БД в 1970 г. Эдгар Франк Кодд (Edgar Frank Codd) A Relational Model of Data for Large Shared Data Banks Communications of the ACM, Volume 13, Number 6, June, 1970 Внедрение этого изобретения перевернуло мир В 2002 журнал Forbes поместил реляционную модель данных в список важнейших инноваций последних 85 лет. Рынок БД Более 15 миллиардов $ в год Крупнейшие игроки: Oracle – 40% IBM – 31% Microsoft – 12% Уровни знания БД 4. Профессиональные знания и навыки Создание МИС 3. Основы проектирования Участие в разработке модулей МИС 2. Устройство, функционирование, использование Использование МИС, Обработка научных данных 1. Общее понятие Общекультурный уровень Что такое таблица? Это хранилище сведений о нескольких (десятках, сотен, тысяч и т.д.) ОДНОРОДНЫХ объектах (сущностях) Примеры объектов: Студент Иванов И.И. Преподаватель Петров П.П. Палата № 6 Должность «Доцент кафедры» Процедура «Внутримышечная инъекция» Прием врача-психиатра Консультация врача-офтальмолога Таблица БД Запись user_id Поле surname firstname secname user_name user_password user_birthdate user_sex 1 Россиев Дмитрий Анатольевич rossiev 548a6b708611caccdc 649f0cd91092a 6 19.11.1965 1 12135 Кубушко Ирина Владимир овна kubushko 12d276b0ca4cc8cdf1f 97a21ba7c449e 26.06.1967 0 12134 Клеменков Александр Сергеевич klemenkova 9f99ed0bd6b7b3773b 991eb0f50c5a9 e 16.04.1978 1 12132 Клеменков Сергей Вениамин ович klemenkovs bfda90519c0e6c76f20 e16df3b96a2a9 24.06.1955 1 12131 Свидерская Лилия Николаев на sviderskaya c0eb34d0abde45ce8e 603d8b7c67c1e 3 21.02.1950 0 Количество полей и записей в таблице БД ПОЛЯ: Таблица имеет как минимум 1 поле Обычно количество полей - от 2 до нескольких десятков Максимальное количество – обычно 255 ЗАПИСИ: Таблица может не иметь ни одной записи (пустая) Обычно – десятки, сотни записей Максимальное количество не ограничено Особенности таблиц БД 1. 2. 3. 4. Строгая сетка (невозможно объединение или дробление ячеек) Шапка – структура (метаданные) Никакая строка (запись) таблицы базы данных не может быть полностью пустой Данные в каждой ячейке должны быть атомарными, т.е. трактоваться однозначно Атомарность для числовых значений НЕПРАВИЛЬНО ПРАВИЛЬНО blood_pressure bp_upper bp_lower 120/80 120 80 140/90 140 90 Атомарность для текстовых значений ЗАВИСИТ ОТ ПРЕДСТОЯЩЕЙ ОБРАБОТКИ fullname surname name sec_name Петров Иван Иванович Петров Иван Иванович Иванов Петр Петрович Иванов Петр Петрович Атомарность значений Значение НЕ является атомарным, если при какой-либо его обработке придется выделять какую-либо его часть. Значение ЯВЛЯЕТСЯ атомарным, если при любой обработке оно используется как единое целое. Два основных закона БД Все данные в базе хранятся в таблицах и нигде больше. Доступ к любому значению (ячейке) однозначно осуществляется по цепочке: Таблица -> Запись (строка) -> Поле (столбец) Таблица: users Запись: 267 Поле: surname Россиев Обращение к данным похоже на принцип шахматной доски Скорость доступа к таблицам Благодаря трехшаговому механизму доступа данные из таблиц извлекаются (и записываются) с огромной скоростью. Скорость доступа к таблицам в тысячи раз выше, чем к обычным файлам. При загрузке личной страницы на сайте КрасГМУ из БД извлекается более 100 значений из 15 таблиц. Два режима работы с таблицами Работа со структурой таблицы Работа с данными таблицы Поле таблицы БД Параметр, целостная и неделимая характеристика, применимая к каждому объекту, сведения о котором хранятся в таблице Для каждого поля задается: Уникальное имя в пределах таблицы (латинскими символами) Русский эквивалент или перевод имени Тип данных и длина Возможность пустых значений NULL Значение по умолчанию DEFAULT Диапазон или перечень возможных значений Ключевое или нет - KEY Комментарий Основные типы данных Численный Произвольная строка Текст Дата Логический (разновидность численного) Номинальный (разновидность численного) Численные типы данных Типы Примеры Значения Целое число Рост 170 Число с плавающей точкой Температура тела 36,6 Логический Наличие судимости Нет/Да; 0/1; False/True Номинальный Район города Советский; Центральный; Ленинский; ... Стадия заболевания Первая; Вторая; Третья (см) (градусы) (неупорядоченный) Номинальный (упорядоченный) Другие типы данных Тип Примеры Значения Строка ФИО Россиев Д.А. Большой текст Реферат статьи ... много текста ... Дата Дата рождения 19.11.1965 Время Приход на работу 08.45 Дата и время Консультация по диплому 17.12.2004 16.30 Счетчик Идентификатор 4876 Объект Фото Тип данных определяет: характер информации, содержащейся в свойствах объектов способ хранения данных в информационной системе возможные способы представления данных возможности обработки данных (поиск, отбор, сортировка, статистика) Ключи Ключ – это поле базы данных, с помощью которого программа быстро находит нужные данные в таблице Первичный Вторичный (индекс) Внешний Запросы к таблицам БД Запросы – операции для извлечения и изменения данных в таблицах баз данных. Виды запросов Выборка (+ сортировка) Добавление записи Редактирование (изменение) записи Удаление записи Модификация структуры Связывание таблиц Выборка ТАБЛИЦА КРИТЕРИЙ ! Выбранная запись Выбранная запись Выбранная запись Выбранная запись Совокупность выбранных записей Добавление записи ТАБЛИЦА Новая запись Изменение записи ТАБЛИЦА Изменяемая запись Удаление записи ТАБЛИЦА Удаляемая запись Язык управления таблицами SQL Structured Query Language Пример запроса на SQL SELECT user_id, surname, firstname, secname FROM users WHERE user_id=12345 user_id surname firstname secname 12345 Петров Иван Иванович Кто имеет право на те или иные операции с рабочими таблицами? Добавление записи Пользователь Изменение записи Пользователь Удаление записи Пользователь или СА Выборка Пользователь Модификация структуры СА Связывание таблиц СА Интерфейсы БД Интерфейсы – визуальные средства представления и управления данными, находящимися в таблицах баз данных Стандартные интерфейсы 1. Визуализация таблицы Стандартные интерфейсы 2. Форма ввода данных Стандартные интерфейсы 3. Диаграмма Стандартные интерфейсы 4. Текстовый/табличный отчет Стандартные интерфейсы 5. Изображения, видеоролики Связывание таблиц Способы связывания таблиц 1. 2. 3. Один к одному Один ко многим Многие ко многим Один к одному Код врача ФИО Код врача Пол Возраст 5 Доктор Айболит 5 М 50 6 Доктор Пеппер 6 М 35 7 Доктор 7 М 27 Курпатов Когда возникает необходимость связывания 1 к 1? 1. 2. 3. Очень много полей Часть данных используется намного реже Повышение скорости работы Один ко многим Код врача Врач 5 Доктор Айболит 6 Доктор Пеппер 7 Доктор Курпатов Код Код врача пациента Пациент 5 1 Заяцев 5 2 Волков 6 3 Лисицина 6 4 Медведева Отношение: врач ЛЕЧИТ пациентов Многие ко многим Код врача Врач 5 Доктор Айболит 6 Доктор Пеппер 7 Доктор Курпатов 8 Доктор Хаус Код врача Код пациента 5 1 5 6 6 6 8 1 Код пациента Пациент 1 Зайцев 2 Волков 6 Лисицина 7 Медведева Отношение: врачи ЛЕЧАТ пациентов Вопрос Как вы считаете, какая организация имеет самую большую базу данных в мире?