java. lecture 10. working with dbms

18
Работа с Базами Данных

Upload: colriot

Post on 04-Jul-2015

605 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Java. Lecture 10. Working with DBMS

Работа с Базами Данных

Page 2: Java. Lecture 10. Working with DBMS

Реляционная модель• Структурная часть описывает, какие объекты

рассматриваются реляционной моделью. Постулируется, что единственной структурой данных, используемой в реляционной модели, являются нормализованные n-арные отношения.

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

• Манипуляционная часть описывает два эквивалентных способа манипулирования реляционными данными - реляционную алгебру и реляционное исчисление.

Page 3: Java. Lecture 10. Working with DBMS

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

• Атрибут – пара вида <имяАтрибута>:<имяДомена>• Кортеж – множество пар вида <имяАтрибута>:<значение>• Тело отношения – множество кортежей отношения• Заголовок отношения – множество атрибутов отношения• Отношение состоит из заголовка и тела

Page 4: Java. Lecture 10. Working with DBMS

Свойства отношений

• В отношении нет одинаковых кортежей• Кортежи не упорядочены• Атрибуты не упорядочены• Все значения атрибутов атомарны

Page 5: Java. Lecture 10. Working with DBMS

1NF

Все отношения находятся в первой нормальной форме:• В отношении нет одинаковых кортежей. • Кортежи не упорядочены. • Атрибуты не упорядочены и различаются по наименованию. • Все значения атрибутов атомарны.

Page 6: Java. Lecture 10. Working with DBMS

1NF

NAME EXT DEPT PROJECT ISSUE

Иванов 1932 DSI (null) (null)

Владимиров 1932 DSI V72 934

Степанов 2134 RE FT 530

Сергеев 2604 APP NGI 100

Степанов 2134 RE FT 533

Андреев 1498 QA V72 935

Сергеев 2604 APP MW 97

employee_dept_project_issues

Page 7: Java. Lecture 10. Working with DBMS

Функциональные зависимости

Пусть R - отношение. Множество атрибутов Y функционально зависимо от множества атрибутов X (X функционально определяет Y) тогда и только тогда, когда для любого состояния отношения R для любых кортежей p, r из того, что

rX = pX следует, что rY = pY

Множество атрибутов X называется детерминантом функциональной зависимости, а множество атрибутов

называется зависимой частью.

Page 8: Java. Lecture 10. Working with DBMS

2NF

Отношение находится во второй нормальной форме (2NF) тогда и только тогда, когда отношение находится в 1NF, и в отношении нет неключевых атрибутов, функционально зависящих от первичного ключа

Page 9: Java. Lecture 10. Working with DBMS

2NFID

NAME EXT DEPT

1 Андреев 1498 QA

2 Иванов 1932 DSI

3 Владимиров 1932 DSI

4 Сергеев 2604 APP

5 Степанов 2134 RE

PROJECT_ID CODE

1 V72

4 NGI

5 IPON

12 MW

3 FT

EMP_ID PROJECT_ID ISSUE

1 1 456

2 5 23

5 12 58

3 12 94

1 12 932

employee_projects_issues

employeesprojects

Page 10: Java. Lecture 10. Working with DBMS

3NF

Отношение R находится в 3NF тогда и только тогда, когда оно находится в 2NF, и все его неключевые атрибуты взаимно независимы

Page 11: Java. Lecture 10. Working with DBMS

Алгоритм нормализации

1. Задается одно или несколько отношений, отображающих понятия предметной области.

2. По модели предметной области (не по внешнему виду полученных отношений!) выписываются обнаруженные функциональные зависимости. Все отношения автоматически находятся в 1NF.

Page 12: Java. Lecture 10. Working with DBMS

Алгоритм нормализации

Приведение к 2NF:

2. Если в некоторых отношениях обнаружена зависимость атрибутов от части сложного ключа, то проводим декомпозицию этих отношений на несколько отношений следующим образом: те атрибуты, которые зависят от части сложного ключа выносятся в отдельное отношение вместе с этой частью ключа.

Page 13: Java. Lecture 10. Working with DBMS

Алгоритм нормализации

Приведение к 3NF:

2. Если в некоторых отношениях обнаружена зависимость некоторых неключевых атрибутов других неключевых атрибутов, то проводим декомпозицию этих отношений следующим образом: те неключевые атрибуты, которые зависят других неключевых атрибутов выносятся в отдельное отношение. В новом отношении ключом становится детерминант функциональной зависимости.

Page 14: Java. Lecture 10. Working with DBMS

Нормальные формы

Критерий Слабо нормализованные

(1NF, 2NF)

Сильно нормализованные

(3NF)

Соответствие предметной области - +

Лёгкость разработки и сопровождения - +

Скорость выполнения вставки

и обновления

- +

Скорость выполнения выборки + -

Page 15: Java. Lecture 10. Working with DBMS

Основы SQL

• Data Definition Language (DDL)• Data Manipulation Language (DML)• Операторы защиты и управления данными

Page 16: Java. Lecture 10. Working with DBMS

DDL

• Управление схемами (CREATE SCHEMA, DROP SCHEMA)• Управление таблицами (CREATE TABLE, ALTER TABLE,

DROP TABLE)• Управление представлениями (CREATE VIEW, DROP VIEW)

Page 17: Java. Lecture 10. Working with DBMS

DML

• SELECT

• INSERT

• UPDATE

• DELETE

• COMMIT

• ROLLBACK

Page 18: Java. Lecture 10. Working with DBMS

Java Database Connectivity

Основные примитивы:• DriverManager

• Driver

• Connection

• Statement

• ResultSet