sql serverと他dbの違いを押さえよう!

25
SQL Server と他 DB の違い を押さえよう! 2017/05/20 第5回 関西DB勉強会 SQLWorld おだ

Upload: oda-shinsuke

Post on 22-Jan-2018

1.228 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Sql serverと他dbの違いを押さえよう!

SQL Server と他 DB の違いを押さえよう!

2017/05/20 第5回 関西DB勉強会

SQLWorld お だ

Page 2: Sql serverと他dbの違いを押さえよう!

自己紹介

織田 信亮(おだ しんすけ)

大阪で開発者しています

SQLWorld の代表です

http://odashinsuke.hatenablog.com/

Twitter:@shinsukeoda

Page 3: Sql serverと他dbの違いを押さえよう!

今日お話しすること

SQL Server って?

DBエンジンの用語と構造

Page 4: Sql serverと他dbの違いを押さえよう!

SQL Server って?

Page 5: Sql serverと他dbの違いを押さえよう!

SQL Server って?

データベースエンジンがよく語られますが、色んな機能をもってます

SSIS

SSAS

SSRS

SQL Server 2008R2 よりhttps://msdn.microsoft.com/ja-jp/library/ms187875(v=sql.105).aspx

Page 6: Sql serverと他dbの違いを押さえよう!

DB エンジンに限ってみると…

オンプレミス

SQL Server

SQL Server PDW

クラウド (Azure)

Azure SQL Database (SQL DB)

Azure SQL Data Warehouse(SQL DW)

Page 7: Sql serverと他dbの違いを押さえよう!

DBエンジンの用語と構造

Page 8: Sql serverと他dbの違いを押さえよう!

インスタンス, サービス, サーバー

全部同じもの

サーバーは文脈によってハードウェアのことも…

実行プロセス

Page 9: Sql serverと他dbの違いを押さえよう!

データベース

サーバーの下に複数のデータベース

ユーザーデータベース

Page 10: Sql serverと他dbの違いを押さえよう!

ファイル

データベース毎に

データファイル

プライマリ(.mdf) / セカンダリ (.ndf)

ログファイル (.ldf)

Page 11: Sql serverと他dbの違いを押さえよう!

ファイルグループ

データファイルを束ねる単位

オブジェクトの配置の単位

Page 12: Sql serverと他dbの違いを押さえよう!

ログイン

サーバー単位

SQL Server にログインするために必要

Page 13: Sql serverと他dbの違いを押さえよう!

ユーザー

データベース単位

Page 14: Sql serverと他dbの違いを押さえよう!

スキーマ

データベース単位

オブジェクトの配置場所/権限を設定するためのグルーピング

Page 15: Sql serverと他dbの違いを押さえよう!

テーブル

Page 16: Sql serverと他dbの違いを押さえよう!

インデックス

Page 17: Sql serverと他dbの違いを押さえよう!

ビュー

一般的なビュー

インデックス付きビュー

ビューにクラスター化インデックスを作成

実データを持つ(インデックス)ので、検索のパフォーマンスが良くなる

追加で非クラスター化インデックスも可能

更新があるとインデックスも更新される

マテリアライズド ビューのような物

Page 18: Sql serverと他dbの違いを押さえよう!

その他

ストアドプロシージャ

ファンクション

シーケンス

シノニム

トリガー

Page 19: Sql serverと他dbの違いを押さえよう!

構造について詳しくは…

SQL Server Management Studio(SSMS) でデータベースに接続してみよう!

資料の画像は、SSMS からキャプチャ

Page 20: Sql serverと他dbの違いを押さえよう!

照合順序

文字データの比較/並べ替えの規則

英語圏では、’Ch~’ と ‘Co~’ は ‘Ch~’ の方が先。スペイン語圏では、’Ch~’ は C の末尾に来るらしい

日本語の指定だと…

JAPANESE_XJIS_100_CS_AS_KS_WS_SC とか

Page 21: Sql serverと他dbの違いを押さえよう!

照合順序

大文字/小文字の区別 (CS / CI)

“a” と “A” が同じ

アクセントの区別 (AS / AI)

"a" と "ǎ" が同じ

“は” と “ば” と “ぱ“ 、 ”つ” と "っ“

かなを区別 (KS / 省略)

“あ” と “ア” が同じ

Page 22: Sql serverと他dbの違いを押さえよう!

照合順序

幅の区別 (WS / 省略)

“ア” と “ア” が同じ

サロゲートペアの文字数 (SC / 省略)

“叱”:1文字 “𠮟”:2文字 両方1文字に

バイナリ照合順序 (BIN / BIN2)

コードポイントによる比較/並び替え

Page 23: Sql serverと他dbの違いを押さえよう!

トランザクション分離レベル

READ UNCOMMITED

READ COMMITED

REPEATABLE READ

SNAPSHOT

SERIALIZABLE

Page 24: Sql serverと他dbの違いを押さえよう!

ロック

共有ロック (S)

更新ロック (U)

排他ロック (X)

共有ロック中 更新ロック中 排他ロック中

(要求) S ○ ○ ×

(要求) U ○ × ×

(要求) X × × ×

Page 25: Sql serverと他dbの違いを押さえよう!

まとめ

RDBMS で用語の細かな違いはある

どの RDBMS も似たり寄ったりの機能 / 構文 があると思うので、キーワード憶えておけば探せると思います。

同じ名前でも、動作が若干違うものもあるので気を付ける