ADODBを利用してCSVファイルを操作する方法を検証した。
今回からはそのCSVを取り込むためのSQLiteデータベースの設計・作成をしてみようと思います。
データベースならではの要素
今でもSQLiteデータベースを使用していますが、感覚的にはExcelの延長線上で使用しているためデータベース独自の作法についてはよく解っていません。
Excelの場合
・タイトル行の設定
・各列の書式設定
・テーブル化
Excelでデータベース的な使い方をする場合はこのぐらいを用意すれば良いでしょうか。
データベースの場合
・テーブルの作成
・各列の名称、属性の設定
・主キーの設定
・インデックスの設定
Excelの場合は新規ブックの作成、既存シートにタイトル行の設定という流れになります。
データベースの場合は新規データベースの作成を行ってもまだ中身は空っぽのままです。
Excelでシートを追加するようにテーブルの新規作成を行います。
その際にテーブルの各列の項目名・属性を設定します。
ここでExcelでは見かけない単語が出てきました。
主キーとインデックスです。
主キー
主キーとは、リレーショナルデータベース(RDB)のテーブル内でレコードを一意に識別することができるように指定される項目(列/カラム)
他の行とは重複することのない値で構成された列です。
データベースは基本的にはExcelの様に中身を目視して内容を確認することはありません。
そこで全く同じ要素を持つ行のうち、特定の行を指定したい場合にこの主キーを利用します。
インデックス
収集・格納された大量のデータをすばやく検索・抽出するために作成された索引データをインデックスという
本の巻末索引のようなもの。データベースの各列に対して設定するかしないかを選択できる。
これをデータベースに設定すると検索のスピードが速くなる。
ただし更新系のSQL文(Insert データの挿入、Update更新、Delete削除)の処理が遅くなるので、無闇矢鱈と設定してはいけない。
まとめ
今回はExcelにはないデータベースの独自要素を紹介しました。
主キーとインデックスを活用することがExcel的データベースの使用方法からの脱却の第一歩になりそうです。
次回は今回の内容を踏まえて実際にデータベースのテーブルを作成したいと思います。