Anúncio
Anúncio

Mais conteúdo relacionado

Similar a データベース技術 6(Database_6)(20)

Anúncio

データベース技術 6(Database_6)

  1. データベース技術 第6回(2015.11.3) 1
  2. データベースの設計について •データベース設計はシステム設計の一部 業務の分析 要件定義 基本設計 論理設計 詳細設計 今の業務はどうなっているのか 何をしたいのか どんなシステムにすべきか どのように実現するか 方法を明確にする データベース設計は この段階に含まれる データベースの設計 =データベースの構造を設計する 2
  3. スキーマ • データベースの構造をスキーマと呼ぶ • スキーマは3つの構造に分類される - 概念スキーマ • 論理的な構造を定義する • ER図の作成、テーブルの設計、論理設計、概念設計 - 外部スキーマ • ユーザから見たデータベースを定義する • ビューの設計 - 内部スキーマ • コンピュータ内部から見たデータベースを定義する • 物理的な部分を定義する • 容量、メモリ設計、物理設計、物理配置設計、インデックス設計 3
  4. 概念スキーマ •データの論理的な構造を設計する段階 - 現実世界をいかにコンピュータに置き換えるか考える - 情報の流れを分析し、データベース化する部分を決定 •表を作って正規化する •ER図を書く •各テーブルのデータの型や長さを決定する 4
  5. 表を作って正規化する •例:果物の輸出に関するデータ 報告書コード 日付 輸出先コード 1101 3/5 12 1102 3/7 23 1103 3/8 25 輸出先コード 輸出先名 12 アメリカ 23 中国 25 フランス 「売上」表 「輸出先」表 商品コード 商品名 単価 101 メロン ¥800 102 いちご ¥150 103 りんご ¥120 104 レモン ¥200 報告書コード 商品コード 個数 1101 101 1,100 1101 102 300 1102 103 1,700 1103 104 500 「商品」表「売上明細」表 5
  6. ER図を書く 商品コード 商品名 単価 輸出先コード 輸出先名 報告書コード 日付 輸出先コード 「商品」表 「輸出先」表「売上」表 1 * 1* 報告書コード 商品コード 個数 「売上明細」表 1* 6
  7. データの型や長さを決める(1) 「輸出先」表 「売上」表 フィールド名 データ型 長さ 制約 報告書コード INT 10 PRIMARY KEY, NOT NULL, AUTO_INCREMENT 日付 DATE NOT NULL 輸出先コード INT 3 FOREIGN KEY フィールド名 データ型 長さ 制約 輸出先コード INT 3 PRIMARY KEY, NOT NULL 輸出先名 VARCHAR 40 NOT NULL ※ AUTO_IMCREMENT:自動的に連番が格納される ※ PRIMARY KEYを指定すると、自動的にNOT NULL, UNIQUEと判断される。  ここでは NOT NULLを明示している。 7
  8. データの型や長さを決める(2) 「商品」表 フィールド名 データ型 長さ 制約 商品コード INT 4 PRIMARY KEY, NOT NULL 商品名 VARCHAR 40 NOT NULL 単価 INT 10 「売上明細」表 フィールド名 データ型 長さ 制約 報告書コード INT 10 PRIMARY KEY, NOT NULL 商品コード INT 4 PRIMARY KEY, NOT NULL 個数 INT 5 NOT NULL ※「売上明細」表は報告書コードと商品コードを主キーとしている(複合キー)。  これは扱い難い場合があるので、明細IDなどを主キーとして設けることもある。 8
  9. 外部スキーマ •ユーザから見やすいデータベースを設計する - 概念スキーマで設計された表は効率の良い形だが、  ユーザにはわかり難い - 外部スキーマではユーザが扱いやすい「見える」表 (ビュー View)を定義する 日付 輸出先コード 商品コード 個数 3/5 12 101 1,100 3/6 25 102 300 日付 輸出先名 商品名 個数 3/5 アメリカ メロン 1,100 3/6 フランス いちご 300 わかり難い わかりやすい 9
  10. 内部スキーマ •コンピュータ内部の物理的な設計を行う - ディスクのどこに作成するか? - データベースのファイル名は? - データサイズはどのくらいか? - バックアップメディアは何を使うか? •ハード的な仕様の決定は重要 - データベースの処理速度に大きな影響を持つ場合がある 10
  11. データベースの設計について •データベース設計はシステム設計の一部 業務の分析 要件定義 基本設計 論理設計 詳細設計 今の業務はどうなっているのか 何をしたいのか どんなシステムにすべきか どのように実現するか 方法を明確にする データベース設計は この段階に含まれる データベースの設計 ・概念スキーマ ←今ここ ・外部スキーマ ・内部スキーマ 11
  12. Work:概念スキーマを作成する •各自でテーマを決定する •データベースの概念スキーマを定義しましょう - 表を作って正規化する - ER図を書く - 各テーブルのデータの型や長さを決定する •manabaにコメントを記載しました •コメントを確認し修正をしてみましょう •修正後のファイルを提出 先週の 12
  13. データベースを構築する(1) •DBMS(Database Management System)を使う - SQLによるアクセス機能 • SQLにより条件指定、ソートなど高度な検索が可能 - 高速な検索機能 • インデックスを持つことにより、高速に検索可能 - 排他制御機能 • 行単位、ファイル単位のロック機能により、排他制御が可能 - トランザクション管理機能 • トランザクション単位の更新や復帰が可能 - ログ管理機能 • アクセスログにより復旧が可能 13
  14. データベースを構築する(2) •代表的なRDMBS - Oracle Database(Oracle社) - SQL Server(Microsoft社) - PostgreSQL(オープンソース) - Microsoft Access(Microsoft社) - MySQL(オープンソース) - SQLite(パブリックドメイン) 14
  15. SQLの機能 •SQL:リレーショナルデータベースを操作する ためのデータベース言語 - データ定義言語DDL(Data Definition Language) • 表を作成する、変更する、削除する - データ操作言語DML(Data Management Language) • データを入力する、抽出する、削除する、変更する - データ制御言語DCL(Data Control Language) • ユーザのアクセスなどを管理する 15
  16. SQLiteの基礎知識(1) •コマンドラインツールを使って操作する •起動方法:SQLiteアイコンをクリック ※大学の環境とは 見た目が違います 16
  17. SQLiteの基礎知識(2) •SQL文は最後に「;」が入力されるまでがひとつ のSQL文として扱われる •「;」の後にEnterキーを押すことで実行される •長いSQL文の場合は、途中でEnterキーを押して もOK(「;」が入力されるまでが1文) 17
  18. SQLiteの基礎知識(3) •長いSQL文の場合は、途中でEnterキーを押して もOK(「;」が入力されるまでが1文) 18
  19. SQLiteの基礎知識(4) •識別子 - テーブル名、カラム名、データベース名 •SQLiteのキーワード - Database、Table、Create、Selectなどなど •SQLiteのキーワードは識別子に使用しない 19
  20. SQLiteを操作してみよう •SQLiteを起動する •接続中のデータベースを確認する •接続していたデータベースから切断する •データベースを作成する •テーブルを作成する 20
  21. 接続中のデータベースの確認 •「.database」コマンドを実行する - 「.database」と入力しEnterキーを押す データベース名 ファイル名 データベースの 内容を記録する 21
  22. 接続中のデータベースから切断 •「.exit」コマンドを実行する - 「.exit」と入力しEnterキーを押す 22
  23. データベースの作成(1) •コマンドプロンプト上で下記のように入力する - sqlite3 データベース名 - 例:sqlite3 shop.sqlite3 23
  24. データベースの作成(2) •コマンドで指定する「データベース名」 - 「データベース名」で指定したデータベースが存在し なければ自動で新規作成され、接続する - SQLiteが設置してあるディレクトリ(フォルダ)に 「データベース名」で指定したファイルが作成さる (環境により変わることがあります) 24
  25. データベースの作成(3) •データベースのファイルの設置場所 - 自分の指定した場所にデータベースのファイルを設置 したい場合は、パス付きで指定する - 例:sqlite3 d:sqlitedbsample.sqlite3 •データベース名は任意の文字列でOK - myfriend - myfriend.db - myfriend.sqlite - myfriend.sqlite3 - 推奨:何のファイルかわかるように拡張子をつける 25
  26. テーブルの作成(1) •基本構文 - CREATE TABLE テーブル名(カラム名1, カラム名2, ...); •テーブルとカラム - 名前には任意の名前を指定できる - テーブルには少なくとも1つのカラムが必要 •練習:下記を実行してみましょう - create table countries(id, name); 26
  27. テーブルの作成(2) •カラムにデータ型を指定してテーブルを作成 - CREATE TABLE テーブル名(カラム名1 データ型, カラ ム名2 データ型, ...); •練習:下記を実行してみましょう - create table items(id integer, name text); 27
  28. SQLiteのデータ型 •SQLiteでは、カラムのデータ型指定は必須では ない •SQLiteで指定できるデータ型 型 説明 TEXT テキスト INTEGER 符号付整数 REAL 浮動小数点数 NONE 入力データをそのまま格納 NUMERIC 上記以外 28
  29. テーブルの確認 •テーブル一覧を表示する - 「.tables」コマンドを実行 •テーブルの構造を確認 - 「.schema」コマンドを実行 - テーブル作成時のCreate文が表示される 29
  30. 参考文献 •SQLite入門 http://www.dbonline.jp/sqlite/ 30
Anúncio