O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

データベース技術 11(Database 11)

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 21 Anúncio

Mais Conteúdo rRelacionado

Semelhante a データベース技術 11(Database 11) (20)

Anúncio

Mais recentes (20)

データベース技術 11(Database 11)

  1. 1. データベース技術 第11回(2015.12.8) 1
  2. 2. ビュー表の作成 •ビュー表(View table) - ユーザーから見たときのみに存在する仮想的な表 - 実表(Base table):実際のデータが入力される表 •ビュー表 作成の書式 - CREATE VIEW ビュー名 AS SELECT文; •作成したビューからデータの取得 - SELECT * FROM ビュー名; •ビューの削除 - DROP VIEW ビュー名; 2
  3. 3. データベースとプログラム •プログラムとデータの独立性 - SQLでデータベース処理を行うことにより、プログラ ムとデータを分けて考えることが可能 - 生産性の向上につながる データ ベース DBMSプログラム SQL 3
  4. 4. プログラムの例(Ruby) require "sqlite3" db = SQLite3::Database.new("database.db") sql = "create table Item (商品コード integer primary key, 商品名 text, 価格 int)" db.execute(sql) puts "Itemテーブルを作成しました。" db.transaction do sql = "insert into Item values (?, ?, ?)" db.execute(sql, 101, "メロン", 800) db.execute(sql, 102, "いちご", 150) db.execute(sql, 103, "リンゴ", 120) db.execute(sql, 104, "レモン", 200) end db.execute2("select * from Item") do | row | puts row.join("t") end db.close SQL文を作成 SQL文を作成 SQL文を実行 具体的なデータを入力し SQL文を実行 結果を表示 データベースに接続 SQL文を実行 4
  5. 5. プログラミングインタフェース •プログラムとデータベースの間でデータをやり とりするもの •API(Application Programming Interface) - プログラムをアプリケーションプログラムと呼び、  そのインタフェースなので、APIと呼ぶ •APIの具体例 - Oracle:C言語から呼び出すOCI - PostgreSQL:C言語から呼び出すlibpq 問題点:汎用性に欠ける →データベースが変わるとプログラムの変更が必要 5
  6. 6. - ソフトウェアB:ネットワーク経由でライブラリを使う - ソフトウェアA:直接ライブラリを使う - どちらも同じAPIを使っている プログラミングインタフェース データ ベース サーバ ソフトウェアB クライアント ネットドライバ API ソフトウェアA ネットドライバ ライブラリ RDBMS API ネットワーク 6
  7. 7. プログラミングインタフェース データ ベース ライブラリ RDBMS1 データ ベース ライブラリ RDBMS2 データ ベース ライブラリ RDBMS3 ソフトウェアC クライアント API① ODBC またはJDBC API② API③ - 製品が異なっても        同じインタフェースを使用できる 7
  8. 8. ODBC •Open Database Connectivity •Microsoft社が制定 •これに従いデータベースベンダがODBCドライ バを提供 •ハードウェアやOSの違いを意識せずに済む •例 - Excelからデータベースに接続してデータを取得する 8
  9. 9. ODBCの仕組み(1) •クライアントパソコンに「ODBCドライバ」を インストール •データベースに接続し、データを取得するプロ グラムを組む - ODBC規格のAPIを利用 •利点 - データベース製品の変更の際、プログラムの大幅な変 更は不要 - 将来の移行を考えた場合、SQL文は標準のものにする 9
  10. 10. ODBCの仕組み(2) アプリケーションプログラム ODBC ライブラリ または ネットワークライブラリ RDBMS ←製品ごとに異なる アプリケーションプログラム ODBC DB Library SQL Server アプリケーションプログラム ODBC Net8 Oracle <SQL Serverの場合> <Oracleの場合> ←ODBC規格のAPIを利用 10
  11. 11. JDBC •Javaプログラミング用につくられたAPI •JDBCを使うとデータベースを意識せずにアクセ ス可能 •JDBCの4つのタイプ - ODBC Bridge Driver(TYPE 1) - Native-API Partly-Java Driver(TYPE 2) - Net Protocol All-Java Driver(TYPE 3) - Native Protocol All-Java Driver(TYPE 4) 11
  12. 12. TYPE 1(ODBC Bridge Driver) •既存のODBCにJDBCのAPIをかぶせることで  データベース接続を実現 •JDBCからODBCに「橋渡し」 JDBC-ODBC ブリッジ ドライバ ODBC ドライバ データ ベース クライアント ネイティブ プロトコル (例:SQLコマンド) ODBC API Javaアプリ ケーション プログラム 12
  13. 13. •JDBCのAPIを、データベース製品固有のAPI  (ネイティブライブラリ)に変換する •アプリケーションを動作させるデータベース  製品固有のAPIが必要になる TYPE 2( Native-API Partly-Java Driver) ネイティブ ブリッジ ドライバ クライアント ライブラリ データ ベース クライアント ネイティブ プロトコル (例:SQLコマンド) ネイティブ API Javaアプリ ケーション プログラム 13
  14. 14. •データベース接続の部分をアプリケーションプ ログラムから分離 •JDBC APIをDBMSに依存しないネットプロトコ ルに変換し、中継サーバに接続 •中継サーバは、ネットプロトコルをDBMS特有 のプロトコルに変換し、ドライバとDBMSとの 接続を仲介する TYPE 3( Net Protocol All-Java Driver) ネット プロトコル ドライバ ネイティブ ライブラリ データ ベース クライアント ネイティブ プロトコル 中間 プロトコル Javaアプリ ケーション プログラム 中継サーバ リスナ 14
  15. 15. •データベース製品固有のAPIをJDBCドライバに すべて実装したもの •クライアント側にデータベース製品固有のAPIの インストールが不要 TYPE 4( Native Protocol All-Java Driver) ネット プロトコル ドライバ データ ベース クライアント ネイティブ プロトコル Javaアプリ ケーション プログラム 15
  16. 16. Webとデータベース(1) •Web創世記:固定的な文書の公開 •WebサーバにCGIが追加 - CGI(Common Gateway Interface):ユーザが作成 したプログラムを呼び出す機能 - 動的な情報が扱えるようになった •現在:アプリケーションのWeb化 - GmailやGoogleカレンダーなど様々なWebサービスが 提供されている 16
  17. 17. Webとデータベース(2) •負荷分散の仕組み - サーバを3つの役割りに分け、多数のユーザに対応 データ ベース データベースサーバ Webサービス Webアプリ アプリケーション サーバ Webサーバ Webサイトの見た目を作る クライアントとの窓口 計算をする データを管理する 役割り: ユーザ クライアント 17
  18. 18. Webとデータベース(3) •Twitter API - Twitterの情報を利用することができる - 例:ウィジェット ここのソースコードを Webサイトに貼付けると Webサイトにツイートが表示される 18
  19. 19. Excelとデータベース(1) •Excelでは、データベースからデータ取得可能 •外部データ参照機能を使う •この機能では、ODBCが使われている •例 - データベースにある売上データをExcelに取り出し、 グラフ化 19
  20. 20. Excelとデータベース(2) 20
  21. 21. Microsoft Accessとデータベース •小規模なデータベースシステム構築が可能 •利点 - フォーム機能を使って簡単にアプリケーションプログ ラムが作成できる - 細かい制御はVBA(Visual Basic Application)を利用 •Accessをフロントエンドとすることができる - フロントエンド:画面の機能(Accessで作成) - バックエンド:データベスの機能(Oracleなどの大規 模データベースを使用) 21

×