您的位置:首页 > 编程语言 > PHP开发

+++++++php组件、SQL基础知识

2017-09-30 13:25 267 查看

一、php基本应用

Hypertext Preprocessor 嵌入thml文档的脚本编程语言,动态网站的开发语言

源码获取:

www.php.net

动态网站开发

php, asp, ruby, c, bash<有程序功能的解释器>"php通过库调用完成操作文件""bash通过内部程序"

配置文件

php包:为Httpd提供模块 PHP scripting language for creating dynamic web sites
# rpm -ql php
/etc/httpd/conf.d/php.conf          //为模块提供的配置
/usr/lib/httpd/modules/libphp5.so   //为prefork提供的模块
/var/lib/php/session
/var/www/icons/php.gif

php-common为php提供运行环境
# rpm -ql php-common
/etc/php.ini
/etc/php.d/*.ini

配置格式

[Foo]
directive = value
[MYSQL|MYSQLI] 连接mysql驱动的配置
持久:基于tcp连接发起mysql协议请求,不断开,需要维持一个连接
非持久:每次建立都需要拆除连接
php.ini核心配置选项:"http://php.net/manual/zh/ini.core.php"
php.ini配置选项列表:"http://php.net/manual/zh/ini.list.php"

配置读取

CGI, CLI //每次httpd调用程序,启动子进程时,读取配置FastCGI/module //在启动web程序读取一次

php添加模块实现加速:

[EPEL]php-xcache提供php的驱动执行php代码: scan[语法] -->parsing[词法-->表达式] --> complie[表达式-->opcode] --> execphp-xache能实现,缓存opcode,进程间能相互使用opcode

二、存储与协议

存储

文件:
syscall


SQL存储:(Mysql分支、oracle、mssql)
驱动
MYSQL分支:mysql, mariadb, percona-server, pgsql(enterpriseDB)
NoSQL: mongodb, hbase, redis
NewSQL: 分布式模式管理存储引擎

协议:关系模型、RDMBS、SQL协议、数据存储协议

关系模型:表(row: 2NF, column:1NF )

实现
: DBMS(Mysql, MariaDB)数据结构:层次、网状、关系模型关系模型的分类:
基本-关系模型

实体-关系模型

基于对象-关系模型

半结构化-关系模型
支持xml解析数据

RDBMS: 满足关系型数据库的设计范式

实现
:SQL存储(MYSQL分支、Oracle、MSSQL)
MYSQL分支:mysql官方, mariadb开源, percona-server著名, pgsql皮(enterpriseDB)
Oracle: 传统公司:在智能手机普级的时候,在高级的收音机又有什么用呢?
MS_SQL:微软
设计范式:
"1NF": 原子性 Atomicity,
例如:一个字段包含班级和专业,不被允许

"2NF":行内有有限个字段惟一标识此行,

"3NF":2个表有相同的字段时,1张表字段必须是主键
例如:
表1: 专业:非主键
表2: 专业:主键
满足范式:
"拆表":将一个大的数据集拆分为小表,表必须满足范式
"联合":join, 基于index,算法
"数据集":一个库、方案、集合内
表:先定义column, 后row
可以没有row, 必须有column
结构:
SQL引擎:
执行[scan]、分析[parsing]、求解[解决方案]、优化[选择路径|修改路径结果不变]
"事务:
多个操作都完成或都不完成(Atomicity原子性, Consistency一致性, Isolating隔离性, Durability持久性)
恢复:
将事务日志中的数据同步至数据区
锁:
写(自己rw,其它人:-)读(自己:r,其它人:r)
空间管理、缓冲、文件存取接口




SQL协议:
Structure Query Language
结构化查询语言

实现
: SQL引擎或SQL解释器 SQL引擎(SQL协议): 命令运行、函数、变量

数据存储协议:

C/S架构,mysql协议, mariadb协议, oracle协议, mssql协议(sql server)
实现
Client:
程序:CLI(mysql), GUI(phpMyadmin)
API:  SQL接口, php-mysql, ODBC(底层库)
**API:写程序面向的对象:硬件规格、汇编、syscall、libcall
Server:
监听socket,接收、处理、响应用户的请求

三、MySQL/MariaDB基本知识

开源RDBMS的实现

MariaDB

MariaDB的来源

作者研发SQL接口:成立AB(瑞典公司),MySQLMySQL-->Google,facebook改进-->SUN收购-->Oracle收购SUN-->MySQL读音:‘My' 'SQL'作者不乐意:另起一摊:MariaDB Maria:女儿的名字

Oracle收购SUN的原因

Oracle不能提供
硬件到软件到系统
一体化的解决方案,而IBM(BIG BLUE)可以,为了比肩IBM,就收购了SUN

约束:插入的数据要遵守的限制

约束类型:
主键约束
:插入数据,惟一标识本行。Not NULL,惟一
惟一键
: 插入数据,惟一标识本行。NULL,不惟一
外键约束
:此表插入内容,取决于另一个表的主键
检查性约束
:字段定义表达式,插入数据必须满足表达式

索引:抽取数据子集,排序

稠密、稀疏:
1对1 or 1对多
简单、组合:
索引字段是1个或多个
聚簇、非聚簇:
索引字段与数据是否在一起

关系运算:抽取数据集

选择、选择row,
WHERE
投影、选择column,
SELECT
连接、
join

数据抽象:按视角

视图层:
view
,只能看到数据库的部分内容:提升用户体验逻辑层:
元数据
, 依赖关系物理层:
据存储格式
:表和文件的对应关系

MySQL安装:

源码 rpm程序官方/项目官方:源码和二进制程序OS Vendor系统安装光盘: rpm
稳定

感激

瑞哥QQ,博客

QQ: 2580259468

博客



关于作者

邮件:lccnx@foxmail.cn

QQ: 2192383945
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struggle strive endeavo