1. DB管理系统
    2个构成要素,database的属性(inter related data的集合【relationship】和relation完全不同,在数据库上)
    database在harddisk以文件file的形式上存储。
    由操作系统调用数据库的数据。
    第二个是:a set of progarms to access db,程序的执行需要在内main memory上。
    没有程序硬件上的数据无法被可视化,这里的acess指的是增删查改。 程序分为用户和系统程序(User/system)

数据库设计理念

:用户需求分析(user requirement analysis) interview로 실행

:Conceptual Schema design 概念图设计【schema DB structure(分为逻辑和物理两种)db全体全貌的程序图设计】===> ER Model

data model: 定义DB结构的工具(tools for definition of DB structure)

Network, hierarchical, relational , object-oriented,object-relational Model

什么是对象?
对象(Object)是一个应用系统中的用来描述客观事物的实体,是有特定属性和行为(方法)的基本运行单位。是类的一个特殊状态下的实例。对象可以是一个实体、一个名词、一个可以想象为有自己标识的任何东西,可以概括来说:万物皆对象。
什么是类?
类(Class)是Java代码的基本组织模块,使用来描述一组具有共同属性和行为对象的基本原型。是对这组对象的概括、归纳和描述表达。类是对象的模板,它定义了本类对象的所拥有的属性集和行为集,是对一组具有相同属性和相同方法的对象的定义。
类与方法的关系?
类和对象之间是抽象与具体的关系。类是一个模板是对一类事物的抽象描述,而对象用于表示现实中该事物的个体。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类必须通过对象才可以使用,而对象中的属性和行为必须在类中定义。

:logical schema–relational data model==>table

数据库最讨厌的问题:冗余重复(redundancy)

:physical schema 这两步由特定的产品来设计(如SQL,Oracle等)数据库绝大多数以关系型数据模型设计。【file or index structure=硬盘上的构成】

index: 为了尽快查找

Independence of logical/physical design: 物理或逻辑上的数据库结构发生了变化也不会影响读取这些数据库的程序。数据库不会影响程序

ER图的实体(entity)即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体成员(entity member)或者说实体对象(entity instance),例如学生实体里包括张三、李四等,实体成员(entity member)/实体实例(entity instance) 不需要出现在ER图中。

ER图的属性(attribute)即数据对象所具有的属性,例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性( unique attribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性。

实体集: 同类实体的集合

ER Model_数据库

ER图的关系(relationship)用来表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系,关系用菱形来表示。

ER Model_实体集_02

图中的线表示关系,该图表达了导师与学生的关系。该处的关系可以是指导,授课,听讲等多种关系。但是该图里导师可以有多个对应关系而学生只能有一个导师。

ER Model_主键_03

实体集之间的关系也可以通过两个实体集的某共有属性相互关联。

属性:

ER Model_主键_04

Domain: 一个合法的属性的取值范围。像名字,字符的集合就是该域的值。真实数据库里不存在无限值域的域。

ER Model_数据_05

first name/mid name/ last name是simple attribute,name本身就是composite attribute。

ER Model_oracle_06

单值属性和多值属性:典例是电话号码,它包含的字符不止一个。

ER Model_oracle_07

派生属性: 如生日,用系统的今日日期减去人的生日,就可以计算出它的生日,不需要单独存在该属性也可以推算出的属性。

映射基数约束

ER Model_主键_08

这是二元关系组里最常用的映射基数约束

ER Model_oracle_09

ER Model_主键_10

映射关系取决于对应规则(By the law)。实体集A和B中可能有意思元素并不与另一个实体集产生关系连接,即便这两个实体集之间存在既定的关系连接。

Key: 实体集的超级键是一个或多个属性的集合,其值唯一地决定每个实体。

实体集的超级键是一个或多个属性的集合,其值唯一地决定每个实体。尽管可能存在多个候选键,但其中一个候选键被选择为主键。

ER Model_oracle_11

super key: 由一个或者多个属性共同组成的key集合。一个表里可以有多个属性用于决定唯一检索的索引。

candidate key: 候补键,是super key中聚合属性最少的一个或多个。

primary key:从众多候补键中选择,有且仅有一个。选择权在于设计者,选择基准根据情况而定。(一般而言身份证号可以作为任何情况下的主键,但是在学校、事业单位,我们用来做唯一标识符的更多的是用事业编号,学号等),而未被选择的候补键就被成为alternate key(替换关键字)。

role的概念:为了明确区分某些概念,哪怕是同一个实体集参与同一个关系,他们也可以有一种关系的两种表示方法来检索出需要的元素和属性 `