美文网首页产品经理0岁的产品经理我爱编程
技术知识入门读书笔记!(2):数据库篇

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

作者: 胆大冒险家 | 来源:发表于2017-11-28 09:53 被阅读62次

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

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


    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.实际工作建议

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

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

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

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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/qpqsbxtx.html