46878 (База даних клієнтів і замовлень), страница 2
Описание файла
Документ из архива "База даних клієнтів і замовлень", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "46878"
Текст 2 страницы из документа "46878"
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с.
-
http://samouchka.net
-
http://proklondike.com
-
http://www.microsoft.com/sql
Д
одаток А
Додаток Б
Додаток В
Створення таблиці 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 (40),
CONSTRAINT [PK_Customers_Payment_Methods] PRIMARY KEY ([customer_payment_method_id]))
Створення таблиці Suppliers
CREATE TABLE [Suppliers] (
[supplier_code] VARCHAR (15) NOT NULL,
[supplier_name] VARCHAR (80),
[other_supplier_details] VARCHAR (255),
CONSTRAINT [PK_Suppliers] PRIMARY KEY ([supplier_code]))
Створення таблиці Ref_Delivery_Status_Codes
CREATE TABLE [Ref_Delivery_Status_Codes] (
[delivery_status_code] VARCHAR (15) NOT NULL,
[delivery_status_description] VARCHAR (80),
CONSTRAINT [PK_Ref_Delivery_Status_Codes] PRIMARY KEY ([delivery_status_code]))
Створення таблиці Customer_Orders_Delivery
CREATE TABLE [Customer_Orders_Delivery] (
[order_id] INTEGER NOT NULL,
[date_reported] DATETIME NOT NULL,
[delivery_status_code] VARCHAR (15) NOT NULL,
CONSTRAINT [PK_Customer_Orders_Delivery] PRIMARY KEY ([order_id], [date_reported]))
Додаток Г
SELECT Customers. *, Addresses. *
FROM Customers INNER JOIN
Customer_Addresses ON Customers. customer_id = Customer_Addresses. customer_id INNER JOIN
Addresses ON Customer_Addresses. address_id = Addresses. address_id
Додаток Д
SELECT Customers. first_name, Customers. middle_name, Customers. last_name, Customers. customer_phone, Addresses. city,
Addresses. state_province_county, Products. product_price, Suppliers. supplier_name, Suppliers. other_supplier_details
FROM Addresses CROSS JOIN
Suppliers INNER JOIN
Products ON Suppliers. supplier_code = Products. supplier_code CROSS JOIN
Customers
GROUP BY Customers. first_name, Customers. middle_name, Customers. last_name, Customers. customer_phone, Addresses. city,
Addresses. state_province_county, Products. product_price, Suppliers. supplier_name, Suppliers. other_supplier_details
ORDER BY Customers. first_name