技术知识入门读书笔记!(2):数据库篇

本系列适合没有技术背景的菜鸟看,是我阅读唐韧老师的《产品经理必懂的技术那些事儿》的笔记,欢迎产品菜鸟们一起交流~

第二篇是数据库,包含数据库概述、关系型与非关系型数据库介绍



1. 数据库基础


1.1 定义

数据库类似于一个数据存储的仓库,按照一定的规则存储,可以进行增删改查操作。


1.2 分类

分为关系型数据库(MySQL为代表)与非关系型数据库(MongoDB和CouchDB为代表)。

区别:关系型数据库基于关系模型,折射现实世界中的实体关系。

非关系型数据库以相对松散的方式存储数据,不像关系型数据库有严格的数据结构约束。


1.3 基本操作

对数据库可进行增、删、改、查的操作。


2. 关系型数据库


2.1 定义

关系型数据库是基于关系模型的数据库,关系模型折射现实生活中的实体关系,通过实体关系模型的方式表现出来。

《产品经理必懂的技术那些事儿》配图

实体关系模型:现实生活中,人是一个实体、车是一个实体,人跟人之间会有关系,人跟车也会有关系。

实体:一系列属性的结合,比如人这个实体就有职业、年龄、性别的属性。属性也可以成为一个实体,比如职业、性别都可以单独成为一个实体。

实体关系:一对一(1:1)、一对多(1:N)、多对多(M:N)。

比如在电商中如果用关系型数据库,实体就包括商品、订单,之间有多对多的关联关系。

实体模型再往下具象,在数据库中实际表现为数据库表和表之间的关系。


2.2 数据库表和表的关系

数据库表与实体模型的对应关系:实体→表,属性→字段,实体关系→数据表关系

定义规则:在定义表的时候需要定义表名、字段名、字段类型。表名和属性名只能用英文命名。

字段类型:与数据类型一致,分为整型、字符型等。

主键:表中第一个属性的名字叫做 表名+id ,作为表中数据的唯一性标记。例如“人”的表,主键就是peopleid,1号、2号……每个peopleid都唯一对应表中的一个人。

《产品经理必懂的技术那些事儿》配图

关联方法:通过关联对应的主键实现实体/表之间的关联。如图就是在people中关联了professionId。

《产品经理必懂的技术那些事儿》配图


2.3 数据库操作语言(SQL)

SQL语句:用来操作关系型数据库的操作命令

示例:

建表:create table people (peopleId varchar(30) primary key, name varchar (50))    

建表包含peopleId与name两个字段,并通过primary key指定peopleId为主键,varchar (30) 表示字符型最大长度30字符

已建表中插入数据:

insert into people values('001','张三')

往people表中插入了值"001"张三”,按顺序对应到表中字段

对数据进行修改:

update people set name=‘李四’ where peopleId= '001'

更新people表中peopleId为001的这条数据,把名字改为李四

查询数据:

select * from people 查询表中所有的数据

select peopleId,name from people 查询表中的peopleId和name两个字段的数据

select * from people where peopleId='001' 查询表中peopleId为001的这条数据的所有字段

select * from people where age > 20 查询people表中年龄大于20岁的人


3.非关系型数据库NoSQL(Not Only SQL)


3.1 定义

松散的不按照严格的结构规范进行存储的数据库。

适合场合:对存取要求比较高且并发处理比较高的场合,例如对网站访问数据的统计。


3.2 四大分类:

键值对(key-value)存储数据库(如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB)、列存储数据库(如:Cassandra, HBase, Riak)、文档型数据库(CouchDB, MongoDb)、图形数据库(Neo4J, InfoGrid, Infinite Graph)。其中文档型数据库是比较主流的。


3.3 以MongoDb为例

数据以类似文档的方式进行存储,每个文档都有唯一标识和版本号。以键值对(key-value)的方式表示和存储数据。据,使用JSON格式的数据进行表示和存储。

{

"peopleId": "001",

"name": "张三",

"sex": "male",

"age": "28",

"profession": "建筑师”

}

这就存储了5个“key-value”形式的数据,冒号左边的是key、右边的是value。

键值对的嵌套:

[

"id": "001"

"name": "张三”

"profession": {"id: "1", "professionName": "建筑师“”}

}

键profession的值也是一个JSON结构。


4.实际工作建议


在设计功能时,工程师常常会提出跟数据库相关的问题,如新功能影响到现有数据库的设计、有些字段是目前数据库里没有的、这个功能导致了数据库结构的变化。所以要求我们在对已有功能修改时注意两个问题:

一是新的设计应该对数据库做何种调整,是新增数据库字段还是要修改或删除原有字段

二是新设计对原有数据的兼容性问题

在沟通时工程师常常根据字段的名字来说明问题,产品需要知道字段是代表哪个产品功能中的哪一个具体信息。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容