Files
obsidian-life/Базы данных. Лекция 1.md
Aleksandr Ebaklakov 011626b8b7 Initial commit
2026-04-22 16:58:43 +03:00

128 lines
9.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
tags:
- универ
---
Описывала литературу, выебывалась тем, что работала в Швеции/Швейцарии (по какой-то одной книжке?), при этом 15 лет читает БД в Корабелке. Еще описывала литературу.
# Основные определения
**База данных** — это набор структурированных данных и связей между ними, которые описывают некоторую **предметную область**. Предназначена для нескольких пользователей. Имеет свой сценарий.
**Предметная область** — ограниченная часть окружающего нас мира.
Например:
- Университет (объекты: студенты, преподаватели, администрация, занятия, проф.союз, бассейн, кафедра, факультет, группа, аудитории)
- Торговый центр
**Основные функции БД**:
1. Хранение данных (информации)
2. Эксплуатация (обновление/чтение) данных (информации)
# DFD
**Data Flow Diagram (DFD)** — Диаграммы потоков (данных). т.е. откуда берутся данные, куда они перемещаются. Рисуется для предметной области. *Рисовать лишь при сложных системах*
Элементы:
1. **Внешний источник** (Покупатель)
2. **Поток данных** *, что происходит с данными*
1. Натация Йордана
2. Натация Гейна (более современная)
3. **Хранилище** — Состояние данных в покое (БД, Электронная таблица). Нет delete, только добавление
4. **Направление процесса** (Как данные переходят)
Пользователь должен получать **неизменяемые** данные. ^e4ae49
**3 Фазы (Уровня) DFD**:
- «Нулевой/Концептуальный» уровень — Нет хранилища, определяется «кто и что делает». ==пример 1==
- «Логический» уровень — Начинаем работать с каждым процессом, появляются внутренние процессы, «подпроцессы». Ответ на вопрос, — «Что включает в себя процесс?». ==пример 2==
- «Физический уровень» — Показывает как реализуются процессы внутри. Каждый поток содержит в себе «входящий» поток и «выходящий». ==пример 3== и ==пример 4==
# Реализация хранилища
**!!! Система ролей («кто ты такой?»): !!!**
- Гость (без регистрации)
- Зарегистрированный пользователей (с регистрацией)
- Администратор (полный функционал)
Для каждой роли имеется свой функционал.
**СУБД** — Система Управления Базами Данных — Набор программ, позволяющих:
- Создать БД
- Построить запрос в БД (с помощью SQL)
- Создать [[Базы данных. Лекция 1#^e4ae49|отчеты]]
# Эксплуатация БД
При эксплуатации БД необходимо учитывать следующие аспекты:
- Функциональность и адаптируемость
- Безопасность
- Время реакции
- Производительность обработки транзакций
- Пропускная способность
**Требования к система БД**:
1. Низкая избыточность данных — Данные лучше хранить в одном месте, чем в нескольких (низкая повторяемость данных)
2. Непротиворечивость данных
3. Соблюдение стандартов
4. Безопасность данных
5. Независимость данных
6. Высокие пользовательские свойства системы
Безопасность понижает производительность приложения
**Основные режимы работы с БД**:
- Создание БД
- Редактирование БД
- Просмотр БД
- Поиск информации в БД (устаревшее?)
**По характеру информации базы данных делятся на:**
- **Фактографические**
Приспособлена для хранения «фактов».
- **Документальные/Документоориентированные**
Приспособлена для хранения «документов».
**По способу хранения базы данных делятся на:**
- Централизированные
БД хранится на одном компьютере
- Распределенные
Распределенные части одной БД разделяются на разные компьютеры (сервера)
*Файл–Серверная модель устарела. ЛУЧШЕ (по производительности) использовать Клиент–Серверную.*
*Лучше не лезть в Model (из MVC)*
## Жизненный цикл БД
1. Планирование — DFD
2. Анализ — Набор требований (ограничения для каждого поля)
3. Разработка проекта
4. Еще хуйня какая-то, я пропустил
# Инфологическое/Концептуальное проектирование БД
1. Системный анализ предметной области
2. Инфологическое проектирование
3. Выбор СУБД
4. Логическое проектирование
5. Физическое проектирование
Базе данных обязательно приложение
**Устаревшая архитектура БД**:
==пример 5==
- Внешний уровень — набор внешних схем со своей терминалогией
Мы работает с концептуальной схемой, которая состоит из внешнего уровня
# Создание диаграммы предметной области
ERD — Entity Relationship Diagram — содержит 3 элемента:
1. Сущность — объект предметной области, ассациируется с существительными. Прямоугольник
1. Слабая сущность. Двойной прямоугольник
2. Атрибуты (для каждой сущности) — параметры сущности (характеристики сущностей предметной области). **Для кажой сущности необходим ключевой атрибут, который определяет**. Овал. Ключевой атрибут подчеркивается.
Типы атрибутов:
1. Ключевой — Обязательный. Подчеркивание.
2. Простой —
3. Составной — Иерархический.
4. Многозначный — Имеет несколько значений. Двойной овал.
5. Вычисляемый — Может быть вычислен из *хранимого* атрибута. Пунктирный овал.
3. Связь — ассациируется с глаголом. Ромб, внутри которого глагол.
1. Арность
1. Бинарная
2. Контракт/Тернарная — связь, между 3 сущностями
2. Степень связи
1. 1: 1 — один экземпляр одной сущности связан с одним экземпляром другой сущности
2. 1: M/ M: 1 — один экземпляр одной сущности связан с несколькими эезмеплярами другой сущности
3. M: M — несколько экземпляров одной сущности связаны с несколькими экземплярами другой сущности
3. Класс принадлежности сущности к данной связи
1. Обязательный — две черты
2. Необязательный — одна черта
4. Наличие атрибутов — атрибуты связи.
ERD содержит несколько натаций. Изучается **Натация Чена**.
>[!nav]
> <span></span> [[Базы данных. Лекция 2|Следующая →]]