記事ディレクトリ
1つは、データベースの基本概念です。
1.データ
- シンボルレコード
- データ、テキスト、グラフィック、画像、サウンド、ファイルレコードなどを含みます。
- 「記録」の形で統一された形式で保存する
2.表
- さまざまなレコードをまとめる
- 特定のデータを保存するために使用されます
3.データベース
- テーブルのコレクションは、データを格納するためのウェアハウスです
- 特定の組織に保存されている関連データのコレクション
4.データベース管理システム(DBMS)
- 効果的な編成、管理、データベースリソースへのアクセスを実現するシステムソフトウェアです。
5.データベースシステム
- これは、ハードウェア、OS、データベース、DBMS、アプリケーションソフトウェア、およびデータベースユーザーで構成されるマンマシンシステムです。
- ユーザーはDBMSまたはアプリケーションを介してデータベースを操作できます
2.データベースシステム開発の歴史
1.第1世代のデータベース
- 1960年代以降、第一世代のデータベースシステムが登場しました
- 階層モデルとネットワークモデルのデータベースシステムです
- データの統合管理と共有を強力にサポートします
2.第2世代データベース
- 1970年代初頭、第2世代のデータベース-リレーショナルデータベースが登場し始めました
- 1980年代初頭、IBMのリレーショナルデータベースシステムDB2が登場し、階層型およびメッシュモデルデータベースに徐々に置き換わり始め、業界の主流になりました。
- これまで、リレーショナルデータベースシステムがデータベースアプリケーションの主要な位置を占めてきました
3.第3世代データベース
- 1980年代以降、さまざまな分野に適応する新しいデータベースシステムが次々と登場してきました。オブジェクト指向のデータベースシステムは、強力な実用性と幅広い適応性を備えています。
- 1990年代後半、複数のデータベースシステムが共同でアプリケーションをサポートする状況が形成されました
- 主流のデータベースシステムにいくつかの新しい要素が追加されました
- たとえば、Oracleでサポートされている「relation-object」データベースモデル
3.今日の主流のデータベース
1.主流のデータベースの紹介
SQL Server(Microsoft Corporationの製品)
- Windowsオペレーティングシステムの場合
- シンプルで使いやすい
オラクル(オラクル社製品)
- すべての主要なプラットフォーム用
- 安全、完璧、複雑な操作
DB2(IBMの製品)
- すべての主要なプラットフォーム用
- 大きく、安全で完全
MySQL(Oracleが取得)
- 無料、オープンソース、小さいサイズ
2.リレーショナルデータベース
リレーショナルデータベース-1
- リレーショナルデータベースシステムは、リレーショナルモデルに基づくデータベースシステムです。
- リレーショナルモデルのデータ構造は、シンプルで理解しやすい2次元データテーブルを使用しています
- リレーショナルモデルは、単純な「エンティティ-リレーションシップ」(ER)図で表すことができます。
- ERダイアグラムには、エンティティ(データオブジェクト)、関係、属性の3つの要素が含まれています。
リレーショナルデータベース-2つの
エンティティ
- インスタンスとも呼ばれ、実世界の他のオブジェクトと区別できる「イベント」または「モノ」に対応します。
- 銀行の顧客、銀行口座など。
属性
- エンティティの特定の特性、エンティティは複数の属性を持つことができます
- たとえば、「銀行の顧客」エンティティセットの各エンティティには、名前、住所、電話番号などの属性があります。
連絡先
- エンティティセット間の対応は接続と呼ばれ、関係とも呼ばれます
- たとえば、銀行の顧客と銀行口座の間には「節約」関係があります
すべてのエンティティとその接続のコレクションは、リレーショナルデータベースを構成します
リレーショナルデータベース-3
- リレーショナルデータベースのストレージ構造は2次元テーブルです
- 各2次元テーブルで
- 各行はレコードと呼ばれ、オブジェクトの情報を説明するために使用されます
- 各列はフィールドと呼ばれ、オブジェクトの属性を説明するために使用されます
3.リレーショナルデータベースアプリケーション
リレーショナルデータベース
- Oracle、MySQL
- SQLServer、Sybase
- 情報、アクセス
- DB2、FoxPRO
応用例
- 12306ユーザー情報システム
- タオバオアカウントシステム
- ユニコム携帯電話番号情報システム
- 銀行ユーザーアカウントシステム
- ウェブサイトユーザー情報システム
4.非リレーショナルデータベースの概要
非リレーショナルデータベースは、NoSQL(SQLだけでなく)とも呼ばれます。
保存されたデータはリレーショナルモデルに基づいておらず、固定のテーブル形式を必要としません
非リレーショナルデータベースの利点
- データベースは高い同時読み取りと書き込みが可能です
- 効率的なストレージと大量のデータへのアクセス
- データベースは高いスケーラビリティと高い可用性を備えています
一般的に使用される非リレーショナルデータベース:Redis、mongoDBなど。
5.MySQLデータベースの概要
- 人気のあるオープンソースのリレーショナルデータベース
- オラクル製品
- GPL契約、無料トライアル、変更に準拠する
特徴:
- 優れたパフォーマンスと安定したサービス
- オープンソース、著作権制限なし、低コスト
- マルチスレッド、マルチユーザー
- C / S(クライアント/サーバー)アーキテクチャに基づく
- 安全で信頼できる
6. MySQL BusinessEditionおよびCommunityEdition
- MySQL BusinessEditionはMySQLABによって開発および保守されており、使用するには支払いが必要です
- MySQL Community Editionは、世界中に散らばっているMySQL開発者や愛好家によって開発および保守されており、無料で使用できます。
2つの違い:
- 商用バージョンは、組織の管理とテストがより厳密であり、コミュニティバージョンよりも安定しています。
- 商用バージョンはGPLに準拠しておらず、コミュニティバージョンはGPLに準拠しており、無料で使用できます。
- 商用バージョンは7 * 24時間のサービスを受けることができますが、コミュニティバージョンはそうではありません
7.MySQL製品キャンプ
-
最初のキャンプ:5.0-5.1キャンプ、初期の製品の継続と言えます
-
2番目のキャンプ:5.4-5.7キャンプは、MySQL AB、コミュニティ、およびサードパーティ企業によって開発されたストレージエンジンを統合して、パフォーマンスを向上させます
-
3番目のキャンプ:MySQL Clusterバージョンである6.0-7.1キャンプは、新しい時代のデータベースクラスタリングのニーズを満たすために開発されました
- ダウンロードURLhttp
://www.dev.mysql.com/downloads
- ダウンロードURLhttp
第四に、Mysql5.7データベースをインストールします
インストールパッケージの準備Mysqlパッケージ
1.依存パッケージをインストールします
[root@server1 ~]#yum -y install \
ncurses \
ncurses-devel \
bison \
cmake
2.ログインできないユーザーを作成します
[root@server1 ~]# useradd -s /sbin/nologin mysql
3.Mysqlパッケージを解凍します
[root@server1 ~]#tar -zxvf mysql-boost-5.7.20.tar.gz
4.cmake構成
[root@server1 ~]#cd mysql-5.7.20/
[root@server1 mysql-5.7.20]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装目录 安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定套接字文件的存储路径套接字:客户端访问mysql数据库的一个接口
-DSYSCONFDIR=/etc \ #配置my. cnf的目录 配置文件路径,(根目录)
-DSYSTEMD_PID_DIR=/usr/local/mysql \ #主服务进程所在路径 (进程文件目录)
-DDEFAULT_CHARSET=utf8 \ #默认字符集
-DDEFAULT_COLLATION=utf8_general_ci \ #默认编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #启用InnoDB引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #启用ARCHIVE引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #启用BLACKHOLE引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ #启用perfschema引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \ #数据存储路径 (数据库目录)
-DWITH_BOOST=boost \ #boost库是为C++语言标准库提供扩展的一些C++程序库的总称
-DWITH_SYSTEMD=1 #这是mysql5.7原生支持systemd的选项,如果用systemctl启动,就必须开启
5.コンパイルしてインストールします
make && make install
6.構成ファイルを編集します
[root@server1 ~]# vi /etc/my.cnf
[client] 客户端
port = 3306 访问端口
default-character-set = utf8 默认字符集
socket = /usr/local/mysql/mysql.sock 套接字
[mysql] 运行用户
port = 3306 运行端口
default-character-set = utf8
socket = /usr/local/mysql/mysql.sock
[mysqld] 程序
user = mysql 运行用户
basedir = /usr/local/mysql 根目录
datadir = /usr/local/mysql/data 用户目录
port = 3306
character_set_server = utf8
pid-file = /usr/local/mysql/mysqld.pid 服务器配置字符
socket = /usr/local/mysql/mysql.sock 进程文件
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
7.データベース権限の構成、所有者、グループ
[root@server1 mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/
[root@server1 mysql-5.7.20]# chown mysql:mysql /etc/my.cnf
8.データベースを初期化します
[root@server1 ~]# mysqld \
--initialize-insecure \ #生成一个空密码,不配置系统会自动生成一个密码
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
9.ファイルをコピーしてサービスを開始します
[root@server1 ~]# cd /usr/local/mysql/
[root@server1 mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
[root@server1 mysql]# cd
[root@server1 ~]# systemctl enable mysqld
[root@server1 ~]# systemctl start mysqld
[root@server1 ~]# systemctl status mysqld
10.パスワードを設定します
[root@server1 ~]# mysqladmin -uroot -p password 'fa123'
[root@server1 ~]# mysql -uroot -p