设计Web数据库的简单总结

Chapter 7 : Design your web database

In this chapter, we need to discuss three problems in order to get into MySQL specifics in the next chapter:
[1] Ralational database concepts and terminology (数据库相关概念和术语)
[2] Web database design (数据库设计)
[3] Web databse architecture (数据库的架构)

The first problem : Ralational database concepts
[Tables]
A table should hava a table_name, a number of columns, a number of rows, each col is corresponding to a different piece of data, each row is corresponding to an individual data.
(一个表有表名、列、行,每一列对应不同数据,每一行对应一个数据的属性)

[Columns]
Each column in the table has a unique name and contains different data.
Each column has an associated data type.
Because of this, columns are sometimes called fields or attributes.
(列常被称为“域”或“属性”)

[Rows]
Each row has the same data type and the same attributes.
Because of this, rows are called records or tuples.
(行常被称为“记录”或“元组”)

[Values]
Each row consists of a set of individual values that correspond to columns.
Each value must have the data type specified by its column.
(每一行由对应于每一列的单个值组成(行与列交叉的地方就是值);每一个值都必须与该列定义的数据类型一样)

[Keys]
Key is a way to identify each specific data.
The identifying column in a table is called the key or the primary key.
A key can consist of multiple columns.
Databases usually consist of multiple tables and use a key as a reference from one
table to another.

[Schemas]
Schemas mean that the complete set of the table designs for a database.

[Ralationships]
Foreign keys represent a relationship between data in two tables.
Relationships can be either one-to-one, one-to-many, or many-to-many.

The second problem : Web database design
[1] Think about the real world objects you are modeling (考虑要建模的真正对象)
[2] Avoid storing redundant data (避免数据重复)
[3] Use atomic column values (使用原子列值)
[4] Choose sensible keys (选择有意义的主键)
[5] Think about the questions you want to ask the database (我们要用这个数据库解决的问题)
[6] Avoid designs with many empty attributes (避免空值)

The third problem : Web database architecture
[1] A user‘s Web browser issues an HTTP request for a particular Web page.
[2] The Web server receives the request, retrieves the file(xxx.php), then passes it to the PHP engine for processing.
[3] The PHP engine begins parsing the script. PHP opens the connection to the MySQL server and sends on the appropriate query.
[4] The MySQL server receives the database query and process it, and sends the results back to the PHP engine.
[5] The PHP engine finishes running the script, which will usually involve formatting the query results nicely in HTML. It then returns the resulting HTML to the Web server.
[6] The Web server passes the HTML back to the browser.

时间: 2024-12-28 13:30:31

设计Web数据库的简单总结的相关文章

mysql web数据库的设计归范-2表设计原则

[职责分离原则] 职责分离原则是指在设计的时候应当考虑到数据的产生,聚合使用等原则,每个系统干自己能干的事情,每个系统只干自己的事情.一个数据表应该放在哪个系统中,通常取决于几点: 1. 谁产生这个信息:通常情况下谁产生了这个数据应当对此数据负责:也就是考虑该数据的创建,发展,销毁等全生命周期的定义,并将这个定义维护起来提供给消费者作为消费原则: 2. 谁最经常使用这个信息:如果某个系统最经常使用这个数据,最经常去修改某个数据,也应该由该系统来负责保存维护该数据: 3. 遵守高内聚,低耦合的考虑

mysql--MySQL数据库的简单认识

一.数据库的简单认识 1.数据库 1.数据库,简而言之可视为电子化的文件柜--存储电子文件的处所,用户可以对文件中的数据运行新增. 截取.更新.删除等操作.所谓"数据库"系以一定方式储存在一起.能予多个用户共享.具有尽可能小的冗余度.与应用程序彼此独立的数据集合. 2.数据库管理系统 (英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储.截取.安全保障.备份等基础功能.数据库管理系统可以依据它 所支持的数据库模型来

打造一款属于自己的web服务器——从简单开始

距离开篇已经过了很久,期间完善了一下之前的版本,目前已经能够完好运行,基本上该有的功能都有了,此外将原来的测试程序改为示例项目,新项目只需按照示例项目结构实现controller和view即可,详情见: easy-httpserver. demo-httpsrever.    这次我们将首先来实现一个简单版本,该版本只包括一些基本的功能,后续版本也将在此基础上一步步改进. 一.准备工作 俗话说的好,工欲善其事,必先利其器.我们在开始开发之前应做好如下准备(真的很简单): java开发环境,IDE

数据库水平切分的原理探讨、设计思路--数据库分库,分表,集群,负载均衡器

本文转载:http://www.cnblogs.com/olartan/archive/2009/12/02/1615131.html 第1章  引言 数据量巨大时,首先把多表分算到不同的DB中,然后把数据根据关键列,分布到不同的数据库中.库分布以后,系统的查询,io等操作都可以有多个机器组成的群组共同完成了.本文主要就是针对,海量数据库,进行分库.分表.负载均衡原理,进行探讨,并提出解决方案. 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每

AXIS2+Myeclipse实现WebService数据库存储简单实例

AXIS2+Myeclipse实现WebService数据库存储简单实例 接了个简单的毕业设计.需要WebService实现前台显示后台数据库存储,本人菜鸟,想了下,决定服务端存放有数据库连接的方法,客户端调用服务端提供的方法,实现与数据库的连接. 一.准备工作: 1.下载AXIS2框架 这里使用的版本是axis2-1.7.2,下载地址:http://axis.apache.org/axis2/java/core/download.cgi官网. (1)Binary distribution ax

列式数据库的简单分析

转自:列式数据库的简单分析 这些天看数据仓库的内容,发现一个新内容——列式存储.曾经有想过把数据库行列转置作成索引,不过没有深想,没想到列式数据库已经开始发展起来了.首先看下WIKI上对列式数据库的解释: 列式数据库是以列相关存储架构进行数据存储的数据库,主要适合与批量数据处理和即席查询.相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合与小批量的数据处理,常用于联机事务型数据处理.数据库以行.列的二维表的形式存储数据,但是却以一维字符串的方式存储,例如以下的一个表:EmpI

mysql数据库很简单操作

进入linux系统 root   >/usr/bin/mysql -u root mysql>show databases;                    #查看数据库 mysql>use  testtable;                        #testtable 为所要查看的库,应用数据库 mysql>show tables;                          #查看所有表 mysql>desc abc_table          

FMDB数据库的简单实用

引入和FMDB第三方类库,  demo地址:http://pan.baidu.com/s/1c0pbfxA 1 #define dataBasePath [[(NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)) lastObject]stringByAppendingPathComponent:dataBaseName] 2 #define dataBaseName @"MyDatabase

数据库中简单的增删改查(CRUD)

一切都是基于数据,而对数据的管理都离不开数据库.最近学到数据库的简单操作,所以写下这篇文章,总结一下学习到的知识.浅陋之处,多多见谅. 补充一下:一直弄不清SQL Server,Mysql ,以及Oracle的关系.SQL Server是微软的,因为微软系统的市场占有额,所以这款软件在市场上也占用很大份额,而Mysql是一款开源免费的数据库,我们知道关系型数据库最开始是IBM的一个实验室提出的理论,但是当时并没有被IBM公司重视,被Oracle的创始人劳伦斯·埃里森重视,发展壮大起来.但是Ora