大工程 从0到1 数据治理 之数据模型和设计篇
我这里还是sample database classicmodels为案列,可以下载,我看 网上还没有类似的 案列,那就 从 0-1开始吧!
什么是数据模型设计?
我这里还是sample database classicmodels为案列,可以下载,我看 网上还没有类似的 案列,那就 从 0-1开始吧!
数据模型设计是在数据库和信息系统开发过程中的关键步骤之一,它涉及到对数据进行组织、建模和定义的过程。数据模型是一个抽象层次的概念,它描述了数据之间的关系、数据的结构、约束和操作。数据模型设计的主要目标是创建一个有效、灵活、可维护且易于理解的数据结构,以支持业务需求和系统功能。
数据模型设计通常包括以下几个方面:
实体: 表示现实世界中的一个独立的对象或概念,例如员工、订单、产品等。
属性: 描述实体的特征或属性,是实体的各个方面的数据项,例如员工的姓名、地址、工资等。
关系: 表示实体之间的连接或关联,它们描述了数据之间的依赖关系。关系可以是一对一、一对多或多对多的关系。
主键: 用于唯一标识表中每一行记录的字段,确保每个记录都有唯一的标识符。
外键: 是一个表中的字段,与另一表中的主键相对应,用于建立表之间的关系。
约束: 用于定义对数据的规则和限制,包括主键约束、唯一约束、默认值约束等。
范式: 一组规则,帮助设计师规范化数据结构,减少数据冗余和提高数据的一致性。
逆范式: 在某些情况下,为了提高查询性能,可以选择违反范式的原则,通过冗余数据来优化设计。
视图: 虚拟表,是从一个或多个基本表中导出的表,可以用于简化查询或隐藏底层数据结构的复杂性。
存储过程和触发器: 数据模型设计中也包括对于数据库中存储过程和触发器的设计,用于实现特定的业务逻辑和数据操作。
数据模型设计的结果通常以图形方式呈现,例如实体-关系图 (ER 图) 或其他概念建模工具。设计好的数据模型提供了一个蓝图,指导数据库的实际实现,确保数据库结构与业务需求一致,支持系统的正常运行和数据的有效管理。
我们拿 sample database classicmodels 举例?
创建表
/*
Name: MySQL Sample Database classicmodels
*/
/* Create the database */
CREATE DATABASE IF NOT EXISTS classicmodels;
/* Switch to the classicmodels database */
USE classicmodels;
/* Drop existing tables */
DROP TABLE IF EXISTS productlines;
DROP TABLE IF EXISTS products;
DROP TABLE IF EXISTS offices;
DROP TABLE IF EXISTS employees;
DROP TABLE IF EXISTS customers;
DROP TABLE IF EXISTS payments;
DROP TABLE IF EXISTS orders;
DROP TABLE IF EXISTS orderdetails;
/* Create the tables */
CREATE TABLE productlines (
productLine varchar(50),
textDescription varchar(4000) DEFAULT NULL,
htmlDescription mediumtext,
image mediumblob,
PRIMARY KEY (productLine)
);
CREATE TABLE products (
productCode varchar(15),
productName varchar(70<