大学で使用した自作の資料等を,手直しの上公開している. クリエイティブ・コモンズ BY NC SA.
リレーショナルデータベースの基礎であるテーブル定義,一貫性制約,SQL,結合と分解,トランザクション,埋め込みSQL,実行計画,二次索引を学ぶ.SQLite 3 を用いて,SQL についての演習も行う.
【サイト内のリレーショナルデータベース関連の資料】
ファイルにはファイル名があり,データが保存されている.ファイル操作には,ファイルオープン,ファイルクローズ,ファイルの読み出し,ファイルの書き込みなどがある.
データベースとは,複数のエンドユーザや,複数のアプリケーションプログラムから共有され,持続的に利用されるデータの集まりのことである. データベースは,実世界のある側面や部分を切り取り,データとして表現したものになっているのが普通である. データベースファイルは,普通,ハードディスクなどの二次記憶装置に置かれる(メインメモリなどにキャッシュされることもある).
個々のデータベースに付けられた名前のこと.1度命名されたデータベース名は変更できない.
データベースが実世界の有り様を正しく記述していることが重要である.
一貫性制約とは,データベースの一貫性に関する制約のこと. 例えば,「月の値は1以上12」になっていなければならない.「氏名の欄は空ではいけない」など,述語などの形で,データベースの一貫性制約を記述することができる. 記述された一貫性制約を全て満足するからといって,データベースの一貫性が保たれているとは限らないことに注意.例えば,生年月日の年を本当は1980なのに,勘違いして1979と記入してしまうようなミスなどは,一貫性制約で防ぎようがない.
問い合わせとは,データベース内から必要なデータを取り出すためのプログラムのことをいう.
データベースへの書き込み(=データの挿入,削除,更新)のうち,誤った操作を排除し,データベースを常に,一貫性制約を満足している状態に維持すること.
データベースの共有において,許されるデータアクセス(=読み出し,書き込み)の種類と範囲をユーザごとに定め,それを守らせるための機能.権限外のアクセスは許されない.
各種の障害からデータベースを守る機能.
データベースを管理し,利用に供するためのソフトウェアのこと. データベースに関する下記の機能を持つのが普通である.
所定のデータモデルに準拠する形で,データベースのデータ構造と一貫性制約を記述できる機能.データ構造や一貫性制約はデータベースごとに記述できることに留意せよ.
データモデルが定める演算に準拠する形で,データベース内から必要なデータを取り出したり,演算を行ったり,データベースの変更を行う機能
データベースへの問い合わせを最適化する機能
データモデルが定める演算を高速に処理するための索引など.
トランザクションに関する機能としては下記の機能がある.
一般のデータベース管理システムは,単独のプロセスとして動き,他の複数のプロセス(自サイトや遠隔サイト)と通信が行われる.つまり,データベースが同時アクセスされる.一方で,組み込み型のデータベース管理システムは,アプリケーションプログラムの中に組み込まれており, 独立したプロセスではない.また組み込み型のデータベース管理システムには,同時アクセスに関する機能がない,アクセス権限と機密保護の機能が無い(そもそも,他のアプリケーションプログラム等がデータベースにアクセスできないので)など,機能が限定されているのが普通である.その分軽量である.
データモデルとは,実世界をデータベースとして記述するための共通の枠組みのこと. 「枠組み」と言っているのは,データベースを利用する,各種のエンドユーザや,各種のアプリケーションプログラムはデータモデルに従うため。
データモデルには,リレーショナルデータモデルなどいくつかの種類があるが,どのデータモデルも次の 3要素からなる(と言ってよい).
言い換えると,データベースのデータ構造や一貫性制約は,データモデルが定める規約を守っている形で記述されている.さらに, データベースを利用する,各種のエンドユーザや,各種のアプリケーションプログラムは,データモデルの定めに従って,データベースを利用するということになる.
概念モデルや論理モデルを記述する行為のこと. 実世界のデータベース化は,概念モデル,論理モデルという2段階で行われるのがふつうである
論理モデルには,リレーショナルデータモデル,ネットワークデータモデル,ハイアラキカルデータモデル(階層データモデルともいう),オブジェクト指向モデルなどの種類がある.
データベース管理システムの種類によって,論理モデルの種類が異なる.実世界の概念モデル(下記)がすでに設計済みであれば,概念モデルを変換して,論理モデルをある程度導出することができる.
データベース化の対象となる実世界について,そのデータ構造と一貫性制約を記述したもの.概念モデルでは,特定の論理モデルを仮定しないし,特定のデータベース管理システムを仮定しない.
概念モデルは,必ずしも,データベース管理システムでそのまま管理可能な表現にはなっていない.従って,ふつうは,概念モデルを,データベース管理システムで管理可能な表現である論理モデルに変換することが必要になる.
実体関連モデルは,概念モデルを記述するための枠組み.実世界を実体型と関連型で記述し,実体型と関連型に属性を定める.さらに,主キーに関する一貫性制約などを定める.
実世界で存在を認識できる対象
同一種類の実体を集めた実体集合 (集合のことなので,個々の「実体」と「実体型)は異なる)
2つ以上の実体型同士に属する実体同士の相互関係.関連は2項または3項以上の相互関係になる(3つ以上の実体型が互いに関連していることがありえるので)
関連の集まりで,同一種類のもの.
実体型や関連型に付随する各種の性質を記述するためのものを「属性」という.
実体関連モデルで「キー」というときは,実体型の属性のうち,実体を唯一に識別するのに使える属性あるいは属性集合のうち極小なもの.
実体関連モデルにおいて,ある1個の実体型に対して,キーは複数種類ありえる.その中でデータベースの管理上最も適当と思われるものを,実体関連モデルの設計時に選んだものを主キーとする. ある1個の実体型に対して「キー」が1種類しかないときは,それが主キーになる.
ある実体型が,単独では主キーを持てないとき,弱実体型という.(主キーを持つ実体型のことを,弱実体型と区別したいときは「通常実体型」のようにいう). ※ 「Aさんの持っているデータベースの教科書」で,教科書に自分の氏名を書いていないとき,「教科書」という実体型は,弱実体型になるだろう.
実体関連モデルで記述した概念モデルを,図として描くための記法. 実体型が四角.関連型がひし形.属性が楕円.主キーにはアンダーラインを引く.弱実体型は二重の四角になる.実体型を関連型を結ぶ線分に,1,N,Mを付け,1対1対応,1対多対応,多対多対応を示す.
実世界を実体関連モデルで記述したとき,実質的な意味が同じであるのに,表現が異なる複数の実体関連モデル設計ができ,「どれが正解だ」とは決めることができないこと.
リレーショナルデータベースでは、次に挙げる事項が標準化されている (Relational Database is a standard of the followings)
リレーショナルデータベースは、テーブルの集まり. (a relational database is a set of tables)
テーブルのそれぞれの列は属性である。
あるテーブルが、属性名1,属性名2,・・・をこの順で持つことを、「テーブル名(属性名1,属性名2,…)」のように記述する
データ型と制約の例
データベースブラウザは,データベース内のテーブルを確認,編集したり,SQLの編集,実行が簡単にできるソフトウェア.
地図(ベクトル形式の地図、DEM)
Point Cloud, ポリゴン
トレンド(trend)と外れ値(outlier)