Download presentation
Presentation is loading. Please wait.
1
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇
2
第一节 概述 数据库技术简介 数据库管理系统 数据模型 ER模型设计 http://wwww-db.stanford.edu
第一节 概述 数据库技术简介 数据库管理系统 数据模型 ER模型设计 你怎样搜集、管理和使用信息,将决定你在竞争中的输赢。 中国不缺软件人才,缺少的只是群体作业和协同发展的全球战略眼光以及市场运作的能力。 —比尔.盖茨
3
一 数据库技术的地位 数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重要分支
数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透 数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志
4
数据管理技术的发展过程 什么是数据管理 数据管理技术的发展过程 对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题
人工管理阶段(40年代中--50年代中) 文件系统阶段(50年代末--60年代中) 数据库系统阶段(60年代末--现在) 人工管理:时期40年代中--50年代中 产生的背景 应用需求 科学计算 硬件水平 无直接存取存储设备 软件水平 没有操作系统 处理方式 批处理
5
Example of a Traditional Database Application
Suppose we are building a system to store the information about: students courses professors who takes what, who teaches what
6
Can we do it without a DBMS ?
Sure we can! Start by storing the data in files: students.txt courses.txt professors.txt Now write C or Java programs to implement specific tasks
7
Doing it without a DBMS... Enroll “Mary Johnson” in “CSE444”:
Write a C/Java program to do the following: Read ‘students.txt’ Read ‘courses.txt’ Find&update the record “Mary Johnson” Find&update the record “CSE444” Write “students.txt” Write “courses.txt”
8
Problems without an DBMS...
Read ‘students.txt’ Read ‘courses.txt’ Find&update the record “Mary Johnson” Find&update the record “CSE444” Write “students.txt” Write “courses.txt” System crashes: What is the problem ? Large data sets (say 50GB) Why is this a problem ? Simultaneous access by many users Lock students.txt – what is the problem ? CRASH !
9
Database server (someone else’s C program)
Enters a DBMS “Two tier system” or “client-server” connection (ODBC, JDBC) Database server (someone else’s C program) Applications Data files
10
三 数据库管理系统 什么是数据库管理系统 数据库管理系统是位于用户与操作系统之间的一层数据管理软件。 DBMS的用途
科学地组织和存储数据、高效地获取和维护数据
11
DBMS的主要功能 The programmer sees SQL, which has two components:
Data Definition Language - DDL Data Manipulation Language - DML query language Behind the scenes the DBMS has: Query engine Query optimizer Storage management Transaction Management (concurrency, recovery)
12
How the Programmer Sees the DBMS
Tables: Still implemented as files, but behind the scenes can be quite complex Students: Takes: Courses: “data independence” = separate logical view from physical implementation
13
Transactions Enroll “Mary Johnson” in “CSE444”:
BEGIN TRANSACTION; INSERT INTO Takes SELECT Students.SSN, Courses.CID FROM Students, Courses WHERE Students.name = ‘Mary Johnson’ and Courses.name = ‘CSE444’ -- More updates here.... IF everything-went-OK THEN COMMIT; ELSE ROLLBACK If system crashes, the transaction is still either committed or aborted
14
Queries Find all courses that “Mary” takes
What happens behind the scene ? Query processor figures out how to answer the query efficiently. SELECT C.name FROM Students S, Takes T, Courses C WHERE S.name=“Mary” and S.ssn = T.ssn and T.cid = C.cid
15
Queries, behind the scene
Declarative SQL query Imperative query execution plan: Students Takes sid=sid sname name=“Mary” cid=cid Courses SELECT C.name FROM Students S, Takes T, Courses C WHERE S.name=“Mary” and S.ssn = T.ssn and T.cid = C.cid The optimizer chooses the best execution plan for a query
16
Database Systems The big commercial database vendors: Oracle
IBM (with DB2) Microsoft (SQL Server) Sybase Some free database systems (Unix) : Postgres MySQL Predator
17
三 数据模型 在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟
数据模型应满足三方面要求 能比较真实地模拟现实世界 容易为人所理解 便于在计算机上实现
18
数据模型(续) 客观对象的抽象过程---两步抽象 现实世界中的客观对象抽象为概念模型;
概念模型 也称信息模型,它是按用户的观点来对数据和信息建模。 概念模型是现实世界到机器世界的一个中间层次。 把概念模型转换为某一DBMS支持的数据模型。 数据模型 主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。 数据模型分成两个不同的层次 (1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模。 (2) 数据模型 主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。
19
Levels of Abstraction Physical level describes how a record (e.g., customer) is stored. Logical level: describes data stored in database, and the relationships among the data. type customer = record name : string; street : string; city : integer; end; View level: application programs hide details of data types. Views can also hide information (e.g., salary) for security purposes.
20
An architecture for a database system
View of Data An architecture for a database system
21
数据模型的组成要素 数据结构 数据结构是对系统静态特性的描述 数据操作 数据的约束条件
22
四 ER模型设计 概念模型的表示方法很多 基于E-R模型的数据库设计方法 基于3NF的数据库设计方法 实体-联系方法(E-R方法)
基于E-R模型的数据库设计方法是由P.P.S.chen于1976年提出的数据库设计方法,其基本思想是在需求分析的基础上,用E-R(实体—联系)图构造一个反映现实世界实体之间联系的企业模式,然后再将此企业模式转换成基于某一特定的DBMS的概念模式。
23
ER模型 ER模型的基本元素 实体 联系 属性 ER模型图例 例子 实体 联系 m n 属性 老 师 学 生 教 学号 姓名 专业 班级
职称 性别 职号 属性
24
例1:学校管理信息系统ER图 社会关系 系 项目 院长 学院 教师 职称 工作量 档案材料 学会 宿舍 教科书 课程 教室 班级 学生 具有
N P M 社会关系 具有 系 聘用 承接 项目 参加 设置 院长 学院 主管 教师 评定 职称 分配 工作量 档案材料 归档 学会 宿舍 住宿 教科书 担任 指导 课程 选修 教室 上课 有 班级 学生 组成 开设 管理
25
出库(出库单号,出库量,出库日期,经手人, 订单(订单号,数量,折扣,总价,订单日期, 存储(仓位号,产品号,核对日期,核对员,存储量)
例2 库存销售信息管理系统的 ER模型及转换 车间(车间号,车间名,主任名) 产品(产品号,产品名,单价) 仓位(仓位号,地址,主任名) 客户(客户号,客户名,联系人,电话, 地址,税号,账号) 销售员(销售员号,姓名,性别,学历,业绩) P 车间 仓位 产品 客户 销售员 存储 出库 订单 入库 M N 实体 入库(入库单号,入库量,入库日期,经手人, 车间号,仓位号,产品名) 出库(出库单号,出库量,出库日期,经手人, 客户号,产品名,仓位号) 订单(订单号,数量,折扣,总价,订单日期, 产品号,客户号,销售员号) 存储(仓位号,产品号,核对日期,核对员,存储量) 联系 库存系统ER图
26
总结 数据库是GIS的后台 数据库技术是GIS的重要技术
Similar presentations