Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データベースと応用システム:SQL(1)表の作成と整合性制約
Search
自然言語処理研究室
May 24, 2013
Education
1
510
データベースと応用システム:SQL(1)表の作成と整合性制約
自然言語処理研究室
May 24, 2013
Tweet
Share
More Decks by 自然言語処理研究室
See All by 自然言語処理研究室
データサイエンス14_システム.pdf
jnlp
0
330
データサイエンス13_解析.pdf
jnlp
0
370
データサイエンス12_分類.pdf
jnlp
0
290
データサイエンス11_前処理.pdf
jnlp
0
400
Recurrent neural network based language model
jnlp
0
100
自然言語処理研究室 研究概要(2012年)
jnlp
0
98
自然言語処理研究室 研究概要(2013年)
jnlp
0
66
自然言語処理研究室 研究概要(2014年)
jnlp
0
62
自然言語処理研究室 研究概要(2015年)
jnlp
0
110
Other Decks in Education
See All in Education
時間の矢について / Time's arrow
kaityo256
PRO
12
16k
Visivolio
addtobasic
0
140
【業務イメージスライド】コンサル_観光業の変化について_セナカインターン
cenaka_intern
0
180
第1回全国商業高校Webアプリコンテスト総括
asial_corp
0
360
6 занятие. Четыре тактики метода "8 кубиков"бизнес-модели #ideaNN 1.03.2024.
karlov
0
140
Baa Baa Black Sheep
haiinya
0
110
ISMSってどんなもの?
fbei_ot
0
130
Digijulkaisut
matleenalaakso
1
8.5k
応用セッション_同じデータでもP値が変わる話/key_considerations_in_NHST_2
florets1
1
830
デジタルアイデンティティの技術を学ぼう!~認証認可にまつわる標準仕様文書を読んでみよう~ / OpenID Summit Tokyo 2024
ayokura
0
440
「小・中・高等学校における情報教育の体系的な学習を目指したカリキュラムモデル基本方針」
codeforeveryone
0
790
スタートアップCTOが個人開発で収益化・年13本記事発信・5件登壇を平行するための時間管理
texmeijin
4
780
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
257
12k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Side Projects
sachag
451
41k
Writing Fast Ruby
sferik
619
59k
Fireside Chat
paigeccino
19
2.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
10
4.5k
Done Done
chrislema
178
15k
Gamification - CAS2011
davidbonilla
76
4.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
240
1.2M
Learning to Love Humans: Emotional Interface Design
aarron
266
39k
GraphQLの誤解/rethinking-graphql
sonatard
48
9.1k
How GitHub Uses GitHub to Build GitHub
holman
467
290k
Transcript
(c)長岡技術科学大学 電気系 1 データベースと応用システム SQL(1) ~表の作成と整合性制約~ 山本和英 長岡技術科学大学 電気系
(c)長岡技術科学大学 電気系 2 SQLの概要 • IBMが開発した関係データモデルに基づくデータ ベース言語 • JIS規格(JIS X
3005) • ほとんどのRDBMSで採用されている • アクセスだけでなくテーブルなどの管理機能も標 準化されている • 条件を満たすデータに対して一括処理が可能
(c)長岡技術科学大学 電気系 3 SQLの2言語 • データ定義言語(Data Definition Language, DDL) –
テーブルやビューの作成、権限の定義 – CREATE, DROP, GRANT, REVOKE など • データ操作言語(Data Manipulation Language, DML) – データの参照・更新・追加・削除など – SELECT, UPDATE, INSERT, DELETE など ※青字部分をデータ制御言語(Data Control Language, DCL)として3言語とする分類もある。
(c)長岡技術科学大学 電気系 4 表定義 CREATE TABLE 商品 ( 商品コード CHAR(4) PRIMARY
KEY, 商品名 NCHAR(10) NOT NULL, 単価 INT, 仕入先コード CHAR(4), FOREIGN KEY (仕入先コード) REFERENCES (仕入先), CHECK (単価 <= 500) ) 商品コード 商品名 単価 仕入先コード 1320 マウス 300 P200 【商品】
(c)長岡技術科学大学 電気系 5 表定義 CREATE TABLE 商品 ( 商品コード CHAR(4) PRIMARY
KEY, 商品名 NCHAR(10) NOT NULL, 単価 INT, 仕入先コード CHAR(4), FOREIGN KEY (仕入先コード) REFERENCES (仕入先), CHECK (単価 <= 500) ) 商品コード 商品名 単価 仕入先コード 1320 マウス 300 P200 【商品】 主キーである 4文字の文字列 必ず値がある 整数である 【仕入先】の仕入れ先コードが 外部キーである 単価に制約をかける
(c)長岡技術科学大学 電気系 6 表の削除 DROP TABLE テーブル名 例: DROP TABLE
商品
(c)長岡技術科学大学 電気系 7 整合性制約 • データがデータベース管理者の想定している通りに 入力されることを保証するための仕組み • 表定義時に(CREATE文中に)一緒に定義する。 •
テーブルに対しての制約(テーブル制約)とテーブ ル中の列に対しての制約(列制約)がある。
(c)長岡技術科学大学 電気系 8 形式制約 入力するデータの型(数字/文字)や文字数(桁)を 指定する。 • 数値型 – INT:大整数、SMALLINT:小整数、NUMERIC(n,m):全
桁数nで小数点以下m桁、DECIMAL:NUMERICと同じ • 文字列型 – CHAR(n):固定長文字列n桁(nは省略可能) – VARCHAR(n):可変長文字列n桁(nは省略可能) • 日付型 – DATE:年月日、TIMESTAMP:年月日と時刻
(c)長岡技術科学大学 電気系 9 デフォルト値 • データを追加する時に値を指定しないと、この値が 設定される。 ... 電話番号 CHAR(15)
DEFAULT '0258-46-6000', ... ※デフォルト値は整合性制約ではないが、記述方法が同じ ためここで紹介しています。
(c)長岡技術科学大学 電気系 10 非ナル(NOT NULL)制約 • ある列にNULL値が入らないようにする。 ... 電話番号 CHAR(15)
NOT NULL, ...
(c)長岡技術科学大学 電気系 11 一意性(UNIQUE)制約 • 指定列が一意である (=同一なものが存在 しない)ことを強制す る。 •
列に対して: ... 電話番号 UNIQUE, ... • テーブルに対して: CREATE TABLE 商品 (商品名 NCHAR(20), … UNIQUE(商品名), ...
(c)長岡技術科学大学 電気系 12 主キー制約 • 指定した列、または列の 組み合わせに一つだけ主 キーとしての指定をする。 • 主キー制約
= 一意性制 約 + 非ナル制約 • 列制約: CREATE TABLE 受注 (受注ID CHAR(5) PRIMARY KEY, … • テーブル制約 CREATE TABLE 受注明細 (受注ID CHAR(5), 連番 CHAR(2), ... PRIMARY KEY(受注ID, 連番), …
(c)長岡技術科学大学 電気系 13 検査(CHECK)制約 • 指定した列の内容に条件 を加える。 • 列制約: ...
単価 INT CHECK(単価>=100), ... • テーブル制約 CREATE TABLE 商品 (単価 INT, ... CHECK(単価>=100) ...
(c)長岡技術科学大学 電気系 14 参照制約(外部キー制約) • 複数の表に参照関係がある場合の制約。以下、A 表のある列がB表のある列を参照しているとする。 • A表にデータを追加する際はB表にある値かNULLし か追加できない
• B表のデータを削除や更新する際は、A表にその値 が存在しない時にのみ可能となる
(c)長岡技術科学大学 電気系 15 参照制約の例 • 列制約: CREATE TABLE 受注 (得意先ID
CHAR(5) REFERENCES 得意先(得 意先ID), ... • テーブル制約 CREATE TABLE 受注 (得意先ID CHAR(5), ... FOREIGN KEY (得意先 ID) REFERENCES 得意先(得 意先ID), ...
(c)長岡技術科学大学 電気系 16 参照制約:オプション • NO ACTION – 参照元にあると参照先を削除・更新できない –
デフォルト • CASCADE – 参照元にあると参照先も連携して削除する • SET NULL – 参照元にあると参照先も連携して削除し、参照元の列 にNULLを設定する
(c)長岡技術科学大学 電気系 17 参照制約オプションの例 CREATE TABLE 受注 (得意先ID CHAR(5), ...
FOREIGN KEY (得意先ID) REFERENCES 得意先(得意先ID), ON DELETE SET NULL ...
(c)長岡技術科学大学 電気系 18 その他の制約 • 存在制約 – あるデータが存在するためには、別のデータが必要で ある •
更新制約 – 値を更新する場合、適当な値を入力しなければならな い(例:月の欄は1~12) • 表明 – 複数の表にまたがる複雑な制約を定義できる