江湖小码农 2018-09-24
SQL_Server2000示例数据库NorthWind的分析
表名:Categories(食品类别表)
表结构:
字段名称
数据类型
长度
允许为空
CategoryID(主键)
int
4
否
CategoryName
nvarchar
15
否
Description
ntext
是
Picture
image
是
主键:CategoryID
主键约束名称:PK_Categories
关系说明:该表主要用来保存食品种类信息的数据。
表名:CustomerCustomerDemo(消费者表)
表结构:
字段名称
数据类型
长度
允许为空
CustomerID(主键)
nchar
5
否
CustomerTypeID(主键)
nchar
10
否
组合主键:CustomerID、CustomerTypeID
主键约束名称:PK_CustomerCustomerDemo
外键:
1.列 CustomerTypeID引用表CustomerDemographics(CustomerTypeID)
2.列 CustomerID引用表Customers(CustomerID)
外键约束名称:
FK_CustomerCustomerDemo和FK_CustomerCustomerDemo_Customers
关系说明:该表主要用来保存消费者ID和消费者类别ID信息的数据。
表名:CustomerDemographics(消费者类别说明表)
表结构:
字段名称
数据类型
长度
允许为空
CustomerTypeID(主键)
nchar
10
否
CustomerDesc
ntext
16
是
主键:CustomerTypeID
主键约束名称:PK_CustomerDemographics
关系说明:该表主要用来存储消费者类别说明信息。
表名:Customers(消费者信息表)
表结构:
字段名称
数据类型
长度
允许为空
CustomerID(主键)
nchar
5
否
CompanyName
nvarchar
40
否
ContactName
nvarchar
30
是
ContactTitle
nvarchar
30
是
Address
nvarchar
60
是
City
nvarchar
15
是
Region
nvarchar
15
是
PostalCode
nvarchar
10
是
Country
nvarchar
15
是
Phone
nvarchar
24
是
Fax
nvarchar
24
是
主键:CustomerID
主键约束名称:PK_Customers
关系说明:该表主要用来存储消费者详细信息的数据表。
表名:Employees(雇员信息表)
表结构:
字段名称
数据类型
长度
允许为空
EmployeeID(主键)
int
4
否
LastName
nvarchar
20
否
FirstName
nvarchar
10
否
Title
nvarchar
30
是
TitleOfCourtesy
nvarchar
25
是
BirthDate
datetime
8
是
HireDate
datetime
8
是
Address
nvarchar
60
是
City
nvarchar
15
是
Region
nvarchar
15
是
PostalCode
nvarchar
10
是
Country
nvarchar
15
是
HomePhone
nvarchar
24
是
Extension
nvarchar
4
是
Photo
image
16
是
Notes
ntext
16
是
ReportsTo
int
4
是
PhotoPath
nvarchar
255
是
主键:EmployeeID
主键约束名称:PK_Employees
外键:
1.列 ReportsTo引用表Employees(EmployeeID)
外键约束名称
FK_Employees_Employees
关系说明:该表主要用来存储雇员的详细信息数据表。
表名:EmployeeTerritories(雇员销售区域表)
表结构:
字段名称
数据类型
长度
允许为空
EmployeeID(主键)
int
4
否
TerritoryID(主键)
nvarchar
20
否
主键:EmployeeID、TerritoryID
主键约束名称:PK_EmployeeTerritories
外键:
1.列 EmployeeID引用表Employees(EmployeeID)
2.列 TerritoryID引用表Territories (TerritoryID)
外键约束名称:
FK_EmployeeTerritories_Employees和FK_EmployeeTerritories_Territories
关系说明:该表主要用来存储雇员ID和其对应的销售区域ID。
表名:Order Details(订单价格表)
表结构:
字段名称
数据类型
长度
允许为空
OrderID(主键)
int
4
否
ProductID(主键)
int
4
否
UnitPrice
money
8
否
Quantity
samllint
2
否
Discount
real
4
否
主键:OrderID、ProductID
主键约束名称:PK_Order_Details
外键:
1.列 OrderID引用表Orders(OrderID)
2.列 ProductID引用表Products(ProductID)
外键约束名称:
FK_Order_Details_Orders和FK_Order_Details_Products
关系说明:该表主要用来存储订单价格信息的数据表
1 组合、主键、聚集索引在 OrderID 和ProductID 上定义。
2 在 OrderID 上也有两个非聚集索引。
3 在 ProductID 上也有两个非聚集索引。
4 UnitPrice 的 CHECK 约束被定义为 (UnitPrice >= 0)。
5 Quantity 的 CHECK 约束被定义为 (Quantity > 0)。
表级别的 CHECK 约束被定义为 (Discount >= 0 和 Discount < = 1)。
表名:Orders(订单表)
表结构:
字段名称
数据类型
长度
允许为空
OrderID(主键)
int
4
否
CustomerID
nchar
5
是
EmployeeID
int
4
是
OrderDate
datetime
8
是
RequiredDate
datetime
8
是
ShippedDate
datetime
8
是
ShipVia
int
4
是
Freight
money
8
是
ShipName
nvarchar
40
是
ShipAddress
nvarchar
60
是
ShipCity
nvarchar
15
是
ShipRegion
nvarchar
15
是
ShipPostalCode
nvarchar
10
是
ShipCountry
nvarchar
15
是
主键:OrderID
主键约束名称:PK_Orders
外键:
1.列 CustomerID引用表Customers(CustomerID)
2.列 EmployeeID引用表Employees(EmployeeID)
3. .列 ShipVia引用表Shippers(ShipperID)
外键约束名称
FK_Orders_Customers,FK_Orders_Employees和FK_Orders_Shippers
关系说明:该表主要用来存储订单详细信息的数据
1 在 CustomerID 上有两个非聚集索引。
2 在 EmployeeID 上有两个非聚集索引。
3 在 ShipVia 上也有一个非聚集索引。
表名:Products(产品信息表)
表结构:
字段名称
数据类型
长度
允许为空
ProductID(主键)
int
4
否
ProductName
nvarchar
40
否
SupplierID
int
4
是
CategoryID
int
4
是
QuantityPerUnit
nvarchar
20
是
UnitPrice
money
8
是
UnitsInStock
samllint
2
是
UnitsOnOrder
samllint
2
是
ReorderLevel
samllint
2
是
Discontinued
bit
1
否
主键:ProductID
主键约束名称:PK_Products
外键:
1.列 CategoryID引用表Categories(CategoryID)
2.列 SupplierID引用表Suppliers(SupplierID)
外键约束名称
FK_Products_Categories和FK_Products_Suppliers
关系说明:该表主要用来存储产品详细信息的数据表。
1 在 SupplierID 上有两个非聚集索引。
2 在 CategoryID 上有两个非聚集索引。
3 UnitPrice 的 CHECK 约束被定义为 (UnitPrice >=)。
4 UnitsInStock 的 CHECK 约束被定义为 (UnitsInStock >=)
5 UnitsOnOrder 的 CHECK 约束被定义为 (UnitsOnOrder >=)。
6 ReorderLevel 的 CHECK 约束被定义为 (ReorderLevel >=)。
表名:Region(区域表)
表结构:
字段名称
数据类型
长度
允许为空
RegionID(主键)
int
4
否
RegionDescription
nchar
50
否
主键:RegionID
主键约束名称:PK_Region
关系说明:该表主要用来存储区域信息数据。
表名:Shippers(托运信息表)
表结构:
字段名称
数据类型
长度
允许为空
ShipperID(主键)
int
4
否
CompanyName
nvarchar
40
否
Phone
nvarchar
24
是
主键:ShipperID
主键约束名称:PK_Shippers
关系说明:该表主要用来存储托运公司的详细信息数据。
表名:Suppliers(供应商信息表)
表结构:
字段名称
数据类型
长度
允许为空
SupplierID(主键)
int
4
否
CompanyName
nvarchar
40
否
ContactName
nvarchar
30
是
ContactTitle
nvarchar
30
是
Address
nvarchar
60
是
City
nvarchar
15
是
Region
nvarchar
15
是
PostalCode
nvarchar
10
是
Country
nvarchar
15
是
Phone
nvarchar
24
是
Fax
nvarchar
24
是
HomePage
ntext
16
是
主键:SupplierID
主键约束名称:PK_Suppliers
关系说明:该表主要用来存储供应商详细信息数据。
表名:Territories(销售区域信息表)
表结构:
字段名称
数据类型
长度
允许为空
TerritoryID(主键)
nvarchar
20
否
TerritoryDescription
nchar
50
否
RegionID
int
4
否
主键:TerritoryID
主键约束名称:PK_Territories
外键:
1.列 RegionID引用表Region(RegionID)
外键约束名称
FK_Territories_Region
关系说明:该表用来存储销售区域详细说明信息的数据。
存储过程分析:
1.CustOrderHist
参数:消费者编号
作用:用来显示指定消费者购买各种商品的总数。
2.CustOrdersDetail
参数:订单编号
作用:用来显示指定订单编号的销售信息。
3.CustOrdersOrders
参数:消费者编号
作用:用来显示指定消费者所有订单销售期限情况。
4.Employee Sales by Country
参数:起始时间、结束时间
作用:用来显示在起始时间和结束时间之间的需要发货订单的负责人信息和订单的详细信息。
5.Sales by Year
参数:起始时间、结束时间
作用:用来查询在起始时间和结束时间之间发货的订单信息及所属年份(包括售价)。
6.SalesByCategory
参数:食品类别、年份
返回值:返回指定食品名称、年份的销售食品名称和其售价。
7.Ten Most Expensive Products
作用:显示Products表中食品单价排在前10位的食品名称和食品单价。
视图分析:
1.Alphabetical list of products未过期食品的详细信息及其所属的类别。
2.Category Sales for 1997显示种类食品在1997年的实际销售部。
3.Current Product List显示未过期食品的信息。
4.Customer and Suppliers by City所有消费者和供货商的信息。
5.Invoices 按照订单发货的详细信息。
6.Order Details Extended订单明细的详细信息。
7.Order Subtotals 每单的实际销售额
8.Orders Qry 有订单的客户的详细订单信息及客户信息
9.Product Sales for 1997 每种食品在1997实际销售额以及食品的详细信息
10.Products Above Average Price单位售价大于所有食品平均售价的食品清单。
11.Products by Category 未过期食品的存货情况(按照商品分类)
12.Quarterly Orders 1997年有订单的客户信息
13.Sales by Category 1997年订单食品的详细情况
14.Sales Totals by Amount 1997年每单销售额大于2500的订单的信息
15.Summary of Sales by Quarter1997年已发货订单的发货时间
16.Summary of Sales by Year 1997年已发货订单的发货时间