Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Даталогічна модель даних





При розробці даталогічної моделі даних на основі аналізу функціональних залежностей між атрибутами відношень потрібно використовувати теорію нормалізації.

Нормалізація - це розбивка таблиці на двоє чи більше, що володіють кращими властивостями при включенні, зміні і видаленні даних. Остаточна мета нормалізації зводиться до одержання такого проекту бази даних, у якому кожен факт з’являється лише в одному місці, тобто виключена надмірність інформації. Це робиться не тільки з метою економії пам’яті, скільки для виключення можливої суперечності збережених даних.

По іншому процес нормалізації можна пояснити як декомпозиція початкового відношення на декілька простіших.

Правила декомпозиції:

Між атрибутами не повинно бути функціональної залежності.

Групування атрибутів не повинно супроводжуватися надмірним дублюванням даних.

Склад атрибутів повинен забезпечувати обробку та поновлення їх без ускладнень.

В даній базі даних “Довідники” використовуються такі зв’язки:

Один до одного (1:1) - у кожен момент часу кожному екземпляру чи атрибуту об’єкта Х відповідає 1 чи 0 екземплярів чи атрибутів об’єкта Y.

Наприклад: У базі даних „ Довідники " можна отримати анотацію про книгу тільки за кодом видання цієї книги. Атрибут Код видання є ключовим атрибутом обох об’єктів бази даних, Видання, Анотації.

Один до багатьох (1: ∞) - одному екземпляру об’єкта Х відповідає 0,1 чи декілька атрибутів об’єкта Y.

Цей зв’язок найпоширеніший в базі даних „ Довідники ”, так як в основному це є база даних по обліку товарів, які продаються та постачаються багатьом користувачам. Товар може бути представлений в наявності в одному екземплярі, або цілою партією.

Наприклад: Виробник випускає продукцію різного типу та конфігурації. Це є 1: ∞ об’єктів Виробники, Види товару. Такий зв’язок може мати об’єкт Назви, Вид товару (1) до Виробника (∞). Так як одну назву може мати багато товарів обліку; вид товару (процесори, материнська плата, принтери, факси) вироблено на одному підприємстві.

Багато до багатьох (∞: ∞). Даний зв’язок розшифровується як такий зв’язок, що створюється ще додатковий об’єкт, який називається асоціативним. Асоціативний зв’язок виникає при формалізації багато до багатьох.

Аналіз визначених вище об’єктів і атрибутів дозволяє виділити об’єкти проектованої бази даних і, прийнявши рішення про створення реляційної бази даних, побудувати її даталогічну модель мовою „Таблиці-зв’язку”:

 

Рис.6 може 11 – Даталогічна модель бази даних „Довідники”

Опис даталогічної моделі в Firebird має вигляд програмного коду, що описує кожний об’єкт таблиці.


object SFirms: TDataSource

DataSet = Firms

Left = 64

Top = 8

end

object SMaterials: TDataSource

DataSet = Materials

Left = 200

Top = 8

end

object SArrival: TDataSource

DataSet = QArrival

Left = 384

Top = 8

end

object SMeasuring: TDataSource

DataSet = Measuring

Left = 72

Top = 64

end

object SExpense: TDataSource

DataSet = QExpense

Left = 432

Top = 152

end

object SObjects: TDataSource

DataSet = Objects

Left = 72

Top = 128

end

object SWork: TDataSource

DataSet = Work

Left = 232

Top = 208

end

object IBDatabase1: TIBDatabase

Params.Strings = (

'user_name=sysdba'

'password=masterkey'

'lc_ctype=win1251')

LoginPrompt = False

DefaultTransaction = IBTransaction1

IdleTimer = 0

SQLDialect = 1

TraceFlags = []

Left = 32

Top = 312

end

object IBTransaction1: TIBTransaction

Active = False

DefaultDatabase = IBDatabase1

AutoStopAction = saNone

Left = 120

Top = 312

end

object Firms: TIBTable

Database = IBDatabase1

Transaction = IBTransaction1

BufferChunks = 1000

CachedUpdates = False

FieldDefs = <

item

Name = 'FIRM_ID'

Attributes = [faRequired]

DataType = ftInteger

end

item

Name = 'NAME'

DataType = ftString

Size = 50

end

item

Name = 'ADRES'

DataType = ftString

Size = 50

end>

IndexDefs = <

item

Name = 'RDB$PRIMARY1'

Fields = 'FIRM_ID'

Options = [ixPrimary, ixUnique]

end>

StoreDefs = True

TableName = 'FIRMS'

Left = 16

Top = 8

end

object Materials: TIBTable

Database = IBDatabase1

Transaction = IBTransaction1

BufferChunks = 1000

CachedUpdates = False

FieldDefs = <

item

Name = 'MATERIAL_ID'

Attributes = [faRequired]

DataType = ftInteger

end

item

Name = 'NAME'

DataType = ftString

Size = 50

end>

IndexDefs = <

item

Name = 'RDB$PRIMARY18'

Fields = 'MATERIAL_ID'

Options = [ixPrimary, ixUnique]

end>

StoreDefs = True

TableName = 'MATERIALS'

Left = 136

Top = 8

end

object Measuring: TIBTable

Database = IBDatabase1

Transaction = IBTransaction1

BufferChunks = 1000

CachedUpdates = False

FieldDefs = <

item

Name = 'MEASURING_ID'

Attributes = [faRequired]

DataType = ftInteger

end

item

Name = 'NAME'

DataType = ftString

Size = 10

end>

IndexDefs = <

item

Name = 'RDB$PRIMARY8'

Fields = 'MEASURING_ID'

Options = [ixPrimary, ixUnique]

end>

StoreDefs = True

TableName = 'MEASURING'

Left = 16

Top = 64

end

object Objects: TIBTable

Database = IBDatabase1

Transaction = IBTransaction1

BufferChunks = 1000

CachedUpdates = False

FieldDefs = <

item

Name = 'OBJECT_ID'

Attributes = [faRequired]

DataType = ftInteger

end

item

Name = 'NAME'

DataType = ftString

Size = 255

end

item

Name = 'INV_NOM'

DataType = ftString

Size = 50

end>

IndexDefs = <

item

Name = 'RDB$PRIMARY2'

Fields = 'OBJECT_ID'

Options = [ixPrimary, ixUnique]

end>

StoreDefs = True

TableName = 'OBJECT'

Left = 16

Top = 128

end

object Work: TIBTable

Database = IBDatabase1

Transaction = IBTransaction1

BufferChunks = 1000

CachedUpdates = False

FieldDefs = <

item

Name = 'WORK_ID'

Attributes = [faRequired]

DataType = ftInteger

end

item

Name = 'NAME'

DataType = ftString

Size = 255

end>

IndexDefs = <

item

Name = 'RDB$PRIMARY17'

Fields = 'WORK_ID'

Options = [ixPrimary, ixUnique]

end>

StoreDefs = True

TableName = 'WORK1'

Left = 168

Top = 216

end

object Statement: TIBTable

Database = IBDatabase1

Transaction = IBTransaction1

BufferChunks = 1000

CachedUpdates = False

FieldDefs = <

item

Name = 'STATEMENT1_ID'

Attributes = [faRequired]

DataType = ftInteger

end

item

Name = 'DIRECTOR'

DataType = ftBlob

Size = 8

end

item

Name = 'ZAYAVA'

DataType = ftString

Size = 50

end

item

Name = 'OSOBA'

DataType = ftBlob

Size = 8

end>

IndexDefs = <

item

Name = 'RDB$PRIMARY15'

Fields = 'STATEMENT1_ID'

Options = [ixPrimary, ixUnique]

end>

StoreDefs = True

TableName = 'STATEMENT1'

Left = 152

Top = 64

end

object QArrival: TIBQuery

Database = IBDatabase1

Transaction = IBTransaction1

BufferChunks = 1000

CachedUpdates = False

SQL.Strings = (

 

'select Arrival.Arrival_id, Arrival.Dates, Materials.Name, Firms.' +

'Name, Arrival.Invoice,'

 

'Arrival.Invoice_date, Arrival.Amount, Measuring.Name, Arrival.Pr' +

'ice, '

'Arrival.Suma, Arrival.Provodka, Place.Name, Category.Name'

'from Arrival,Firms, Materials, Measuring, Place, Category'

'where Arrival.Material_id=Materials.Material_id and'

'Arrival.Firm_id=Firms.Firm_id and'

'Arrival.Measuring_id=Measuring.Measuring_id and'

'Arrival.Place_id=Place.Place_id and'

'Arrival.Category_id=Category.Category_id'

'and Arrival.Dates >=:DateBgn and Arrival.Dates <=:DateEnd')

Left = 312

Top = 16

ParamData = <

item

DataType = ftUnknown

Name = 'DateBgn'

ParamType = ptUnknown

end

item

DataType = ftUnknown

Name = 'DateEnd'

ParamType = ptUnknown

end>

end

object Presence_: TIBQuery

Database = IBDatabase1

Transaction = IBTransaction1

BufferChunks = 1000

CachedUpdates = False

SQL.Strings = (

'select '

 

'Presence.Presence_id, Presence.Material_id, Presence.Date_arriva' +

'l,Materials.Name, Firms.Name, '

'Presence.Invoice, Presence.Invoice_date, Presence.Amount,'

 

'Measuring.Name, Presence.Price, Presence.Suma, Place.Name, Categ' +

'ory.Name'

'from '

'Presence, Materials, Firms, Measuring, Place, Category'

'where'

'Presence.Material_id=Materials.Material_id and'

'Presence.Firm_id=Firms.Firm_id and'

'Presence.Measuring_id=Measuring.Measuring_id and'

'Presence.Place_id = Place.Place_id and'

'Presence.Category_id = Category.Category_id')

Left = 184

Top = 144

end

object SPresence: TDataSource

DataSet = Presence

Left = 240

Top = 144

end

object QExpense: TIBQuery

Database = IBDatabase1

Transaction = IBTransaction1

BufferChunks = 1000

CachedUpdates = False

SQL.Strings = (

 

'select Expense.Expense_id, Expense.Data, Expense.Date_arrival, M' +

'aterials.Name, Firms.Name, Expense.Invoice,'

'Expense.Invoice_date, Expense.Amount, Measuring.Name, '

 

'Expense.Price, Expense.Suma, Expense.Provodka, Work1.Name, Objec' +

't.Name, Place.Name, Category.Name'

 

'from Expense, Firms, Materials, Measuring, Work1, Object, Place,' +

' Category'

'where '

 

'Expense.Firm_id=Firms.Firm_id and Expense.Material_id=Materials.' +

'Material_id and'

'Expense.Measuring_id=Measuring.Measuring_id and'

'Expense.Work_id= Work1.Work_id and'

'Expense.Object_id=Object.Object_id and'

'Expense.Place_id = Place.Place_id and'

'Expense.Category_id = Category.Category_id'

'and'

'Expense.Data >=:DateBgn and Expense.Data <=:DateEnd ')

Left = 352

Top = 168

ParamData = <

item

DataType = ftUnknown

Name = 'DateBgn'

ParamType = ptUnknown

end

item

DataType = ftUnknown

Name = 'DateEnd'

ParamType = ptUnknown

end>

end

object Place: TIBTable

Database = IBDatabase1

Transaction = IBTransaction1

BufferChunks = 1000

CachedUpdates = False

FieldDefs = <

item

Name = 'PLACE_ID'

Attributes = [faRequired]

DataType = ftInteger

end

item

Name = 'NAME'

DataType = ftString

Size = 100

end>

IndexDefs = <

item

Name = 'RDB$PRIMARY19'

Fields = 'PLACE_ID'

Options = [ixPrimary, ixUnique]

end>

StoreDefs = True

TableName = 'PLACE'

Left = 280

Top = 80

end

object SPlace: TDataSource

DataSet = Place

Left = 344

Top = 80

end

object Category: TIBTable

Database = IBDatabase1

Transaction = IBTransaction1

BufferChunks = 1000

CachedUpdates = False

FieldDefs = <

item

Name = 'CATEGORY_ID'

Attributes = [faRequired]

DataType = ftInteger

end

item

Name = 'NAME'

DataType = ftString

Size = 100

end>

IndexDefs = <

item

Name = 'RDB$PRIMARY20'

Fields = 'CATEGORY_ID'

Options = [ixPrimary, ixUnique]

end>

StoreDefs = True

TableName = 'CATEGORY'

Left = 432

Top = 80

end

object SCategory: TDataSource

DataSet = Category

Left = 496

Top = 80

end

object Presence: TIBQuery

Database = IBDatabase1

Transaction = IBTransaction1

BufferChunks = 1000

CachedUpdates = False

SQL.Strings = (

'select * from EXPENCEVIEV(0,0)')

Left = 128

Top = 176

end


 

 

Схема БД облікової системи представлена у вигляді 24 таблиць, основні з яких: “Виробники”, “Види товару”, “Місце розташування товару”, “Внутрішня звітність", “Зовнішня звітність", “Характеристики товару”, “Постачальники", “Оптові покупці" та ін. Представимо у вигляді таблиці назви основних полів та зв’язків між ними -таблиця 3.

 

Таблиця 3 Основні поля зв’язків між таблицями бази даних системи обліку

Назва таблиці Ім’я поля Тип поля
Виробники Код виробника Числовий
Код країни виробника Числовий
Види товару Код товару Текстовий
Короткий опис Текстовий
Характеристики товару Код товару Текстовий
Назва виду Текстовий
Ціна товару Числовий
Кількість товару Числовий
Постачальники Код підприємства Числовий
Назва Текстовий
Місто Текстовий
Групи товарів Текстовий
Місце розташування товару Код товару Числовий
Код виробника Текстовий
Вид товару Текстовий
Номер складу Числовий
Постачальник Текстовий
Кількість товару отриманого Текстовий
Кількість товару відправленого Числовий
Дата отримання Дата/час
Анотації Текстовий
Оптові покупці Код підприємства Числовий
Назва Текстовий
Місто Текстовий
Групи товарів Числовий
Дата повернення Дата/час
Внутрішня звітність Код шаблону Текстовий
Номер звітності Числовий
Зовнішня звітність Код шаблону Текстовий
Номер звітності Текстовий
Примітки для аудиту Текстовий
Співробітники Номер картки працівника Числовий
Прізвище Текстовий
Ім’я Текстовий
По батькові Текстовий
Адреса Текстовий
Телефон Текстовий

 

Для нормальної роботи БД усі таблиці зв’язані між собою, це забезпечує формування запитів, форм звітів до бази даних.

Змоделювавши даталогічну модель БД інформаційної автоматизованої системи обліку товарів комп’ютерної фірми в якій помічена кількість потрібних таблиць, полів та зв’язків між ними починається розробка програмного продукту, в якому буде створюватись база даних.

 








Дата добавления: 2015-09-04; просмотров: 2481. Нарушение авторских прав; Мы поможем в написании вашей работы!




Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


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

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Тема 5. Организационная структура управления гостиницей 1. Виды организационно – управленческих структур. 2. Организационно – управленческая структура современного ТГК...

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

Психолого-педагогическая характеристика студенческой группы   Характеристика группы составляется по 407 группе очного отделения зооинженерного факультета, бакалавриата по направлению «Биология» РГАУ-МСХА имени К...

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

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

Studopedia.info - Студопедия - 2014-2025 год . (0.012 сек.) русская версия | украинская версия