База даних клієнтів і замовлень
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
збори інтегрованих записів. Вона є само документованою, оскільки містить опис самої себе в словнику даних. Словник даних відомий також як каталог даних, або метадані. База даних є зборами інтегрованих записів, оскільки звязки між записами також зберігаються в базі даних. Така організація дозволяє СУБД конструювати навіть вельми складні обєкти, комбінуючи дані на підставі звязків, що зберігаються.
Є два способи створення таблиць, уявлень, індексів і інших структур бази даних. Перший спосіб - використовувати засоби графічного проектування, подібні наявним в Access. Другий спосіб полягає в написанні SQL-операторів, що створюють ці структури, і передачі їх на виконання SQL Server за допомогою програми SQL Query Analyzer.
SQL Server підтримує призначені для користувача типи даних, які дозволяють реалізувати домени. Ці типи можна використовувати для визначення стовпців як в засобах графічного проектування, так і в SQL-операторах.
Структуру таблиці можна міняти за допомогою графічних засобів або SQL-оператора ALTER TABLE. Звязки можна створювати шляхом малювання їх на діаграмах бази даних або визначення зовнішніх ключів в SQL-операторах.
Модель "cутність - звязок" була розроблена Пітером Ченом. У цій моделі визначається суть - обєкти, що ідентифікуються, представляють важливість для користувача. Вся суть даного типа утворює клас суті. Окрема суть називається екземпляром. Суть має атрибути, які описують їх характеристики; один або декілька атрибутів визначають суть.
Звязки відображають взаємини між суттю. У ER-моделі звязку визначаються явним чином; у кожного звязку є імя; існують також класи звязків і екземпляри звязків. У звязків можуть бути атрибути.
Ступінь звязку - це число суті, яка в ній бере участь. Більшість звязків є бінарними. Є три типу бінарних звязків: 1: 1, 1: N і N: M.
На діаграмах "cутність - звязок" суті зображаються прямокутниками, а звязки - ромбами. Максимальне кардинальне число звязку указується усередині ромба. Мінімальне кардинальне число указується за допомогою перпендикулярної межі або овалу. Звязки, що сполучають суть одного класу, називаються рекурсивними. Атрибути можуть бути показані на ER-діаграмі в еліпсах або в окремій таблиці.
Бази даних моделюють не реальний світ, а модель ділового світу, присутню в уяві користувача. Правильним критерієм для оцінки моделі даних є те, наскільки ця модель відповідає призначеній для користувача моделі. Суперечка про те, яка модель найкращим чином відображає реальний світ, не має сенсу.
Список використаної літератури
- Теория и практика построения баз данных.8-е изд. Д. Кренке. - Спб.: Питер, 2003. - 800 с.
- С. Байдачный, Д. Маленко, Ю. Лозинский. SQL Server 2005: новые возможности для разработчиков - М.: СОЛОН - Пресс, 2006 - 208с.
Додаток А
Додаток Б
Додаток В
Створення таблиці Products
CREATE TABLE [Products] (
[product_id] INTEGER IDENTITY (1,1) NOT NULL,
[product_type_code] CHAR (15) NOT NULL,
[supplier_code] VARCHAR (15) NOT NULL,
[product_price] MONEY,
[book_isbn] CHAR (15),
[book_author] VARCHAR (40),
[book_publication_date] DATETIME,
[book_title] VARCHAR (255),
[book_price] SMALLMONEY,
[food_contains_yn] CHAR (1),
[food_name] VARCHAR (80),
[food_description] VARCHAR (255),
[food_flavor] VARCHAR (80),
[food_ingredients] VARCHAR (255),
[other_product_details] VARCHAR (255),
CONSTRAINT [PK_Products] PRIMARY KEY ([product_id])
Створення таблиці Ref_Product_Types
CREATE TABLE [Ref_Product_Types] (
[product_type_code] CHAR (15) NOT NULL,
[level_number] INTEGER,
[parent_product_type_code] CHAR (15),
[product_type_description] VARCHAR (80),
CONSTRAINT [PK_Ref_Product_Types] PRIMARY KEY ([product_type_code]))
Створення таблиці Customers
CREATE TABLE [Customers] (
[customer_id] INTEGER IDENTITY (1,1) NOT NULL,
[first_name] VARCHAR (80),
[middle_name] VARCHAR (80),
[last_name] VARCHAR (80),
[customer_phone] VARCHAR (80),
[customer_email] VARCHAR (80),
[other_customer_details] VARCHAR (255),
CONSTRAINT [PK_Customers] PRIMARY KEY ([customer_id]))
Створення таблиці Customer_Orders
CREATE TABLE [Customer_Orders] (
[order_id] INTEGER IDENTITY (1,1) NOT NULL,
[customer_id] INTEGER NOT NULL,
[customer_payment_method_id] INTEGER NOT NULL,
[order_status_code] CHAR (15) NOT NULL,
[date_order_placed] DATETIME NOT NULL,
[date_order_paid] DATETIME,
[der_total_order_price] SMALLMONEY,
[other_order_details] VARCHAR (255),
CONSTRAINT [PK_Customer_Orders] PRIMARY KEY ([order_id]))
Створення таблиці Ref_Payment_Methods
CREATE TABLE [Ref_Payment_Methods] (
[payment_method_code] CHAR (15) NOT NULL,
[payment_method_description] VARCHAR (80),
CONSTRAINT [PK_Ref_Payment_Methods] PRIMARY KEY ([payment_method_code]))
Створення таблиці Ref_Order_Status_Codes
CREATE TABLE [Ref_Order_Status_Codes] (
[order_status_code] CHAR (15) NOT NULL,
[order_status_description] VARCHAR (80),
CONSTRAINT [PK_Ref_Order_Status_Codes] PRIMARY KEY ([order_status_code]))
Створення таблиці Addresses
CREATE TABLE [Addresses] (
[address_id] INTEGER IDENTITY (1,1) NOT NULL,
[line_1] VARCHAR (80),
[line_2] VARCHAR (80),
[line_3] VARCHAR (80),
[city] VARCHAR (50),
[zip_postcode] CHAR (20),
[state_province_county] VARCHAR (50),
[iso_country_code] VARCHAR (50),
[other_address_details] VARCHAR (255),
CONSTRAINT [PK_Addresses] PRIMARY KEY ([address_id]))
Створення таблиці Customer_Addresses
CREATE TABLE [Customer_Addresses] (
[customer_id] INTEGER NOT NULL,
[address_id] INTEGER NOT NULL,
[date_from] DATETIME NOT NULL,
[address_type_code] CHAR (15) NOT NULL,
[date_to] DATETIME,
CONSTRAINT [PK_Customer_Addresses] PRIMARY KEY ([customer_id], [address_id], [date_from]))
Створення таблиці Ref_Address_Types
CREATE TABLE [Ref_Address_Types] (
[address_type_code] CHAR (15) NOT NULL,
[address_type_description] VARCHAR (80),
CONSTRAINT [PK_Ref_Address_Types] PRIMARY KEY ([address_type_code])
Створення таблиці Customer_Orders_Products
CREATE TABLE [Customer_Orders_Products] (
[order_id] INTEGER NOT NULL,
[product_id] INTEGER NOT NULL,
[quantity] VARCHAR (40),
[comments] VARCHAR (40),
CONSTRAINT [PK_Customer_Orders_Products] PRIMARY KEY ([order_id], [product_id]))
Створення таблиці Customers_Payment_Methods
CREATE TABLE [Customers_Payment_Methods] (
[customer_payment_method_id] INTEGER IDENTITY (1,1) NOT NULL,
[customer_id] INTEGER NOT NULL,
[payment_method_code] CHAR (15) NOT NULL,
[card_number] VARCHAR (40),
[date_from] DATETIME,
[date_to] DATETIME,
[other_details] VARCHAR