データベースの一般的な説明

  1. データベースとは何か
    1. データベース管理システム(DBMS)
      1. データベースとは、データの組織的な集合であり、そのデータへのアクセス、管理、変更等の制御が容易に行えるようにしたもの が、『デー タベース管理 ステム( DBMS)』 です。多くの場合は単にデータベースと呼んでいます。
    2. リレーショナルデータベース管理システム(RDBMS)
      1. 『データベース管理システム』の代表的なものです。列と行を持つテーブル(表)の集合で、デ―タ1件が行単位で格納されま す。データの書 き込みや処理要求には『構造化クエリ言語(SQL)』を使用します。NoSQLデータベースやオブジェクト指向データベースなどの他の構造の データベースと区別する意味で『リレーショナルデータベース』と呼びます。
        主なRDBMSには商用の「Oracle]や「SQLServer」の他に「MySQL」や「PostgreSQL」など無料で 使えるオープ ンソースのデータベースもあります。

  2. MZ Platformとデータベースの接続
  3. 代表的なデータベースとドライバファイル

    MZ PlatformからデータベースへはJavaの技術を介して接続します。
    JDBC(データベースへアクセスするためのJava標準API)のドライバーファイルが用意されていれば、MZ Platformからアクセス可能で す。
    (チュートリアルでは世界中で広く使われているオープンソースデータベースの『MySQL』を例に取上げています。)
    1. JDBCドライバーは各社データベースのインストール時に同時にインストールされるか、インストールCDに同梱されていま す。
      HPから入 手 できる場合もあります。
      ダウンロードの際は必ず使っているデータベース、OS、JREのバージョンに適合しているか 確認してください。
    2. データベース名

      Webページ (23年4月現在)/JDBCドライバーファイル名

      MySQL

      https://www.mysql.com/jp/
      https://dev.mysql.com/downloads/mysql/

      mysql-connector-java-8.0.xx-bin.jar (Connector/J 8.0.xx)
      MariaDB https://mariadb.com/

      mariadb-java-client-3.1.3.jar

      PostgreSQL

      https://www.postgresql.jp/
      https://jdbc.postgresql.org/

      postgresql-42.6.x.jar

      SQLite https://www.sqlite.org/index.html

      sqlite-jdbc-3.4x.x.x.jar
      H2 https://www.h2database.com/html/main.html

      h2-xxxx.jar

      Oracle

      https://www.oracle.com/jp/index.html

      ojdbc8.jar, ucp.jar

      Micrsoft SQL Server

      https://www.microsoft.com/ja-jp/sql-server/sql-server-downloads

      mssql-jdbc-12.2.0.jre8.jar

    データベースへの接続文字列

    データベースアクセスコンポーネントの引数設定

      MZ Platformからデータベースへ接続するには、[データベースアクセス]コンポーネントのメソッド「データベースに 接続する (String,String,String,String)」を使用します。
      引数1~4までの設定情報は以下の通りです。
      基本的にJavaのプログラ ムから接続するときと同様になります。

      MySQL

      引数1

      ドライバ名

      com.mysql.jdbc.Driver (MySQL5.7まで)
      com.mysql.cj.jdbc.Driver (MYSQL8.0以降)

      引数2

      データベースのURL

      jdbc:mysql://ホスト名:3306/データベース名
      例)jdbc:mysql://localhost:/production

      引数3

      ユーザ名

      (必須)

      引数4

      パスワード

      (必須)

      MariaDB

      引数1 ドライバ名 org.mariadb.jdbc
      引数2 データべ―スのURL jdbc:mariadb://ホスト名:3306/データベース名
      例) jdbc:mariadb://localhost:3306/DBName
      ユーザー名、パスワード必須

      PostgreSQL

      引数1 ドライバ名 org.postgresql.Driver
      引数2 データベースのURL
      jdbc:postgresql://ホスト名:ポート名/データベース名
      例)jdbc:postgresql://localhost:5432/DBName
      ユーザー名、パスワード必須

      SQLite

      引数1 ドライバ名 org.sqlite.JDBC
      引数2 データベースのURL jdbc:sqlite:データベースファイルまでのパス
      例)jdbc:sqlite:C:\MZPlatform\sqLite\test.db
      ユーザー名、パスワードは無し

      H2

      引数1 ドライバ名 org.h2.Driver
      引数2 データベースのURL jdbc:h2:データベースファイルまでのパス
      例)jdbc:h2:~/test(組み込みモード)
      jdbc:h2:tcp://サーバー名/ファイルまでのパス(サーバーモード)
      ユーザー名(スーパーユーザー:sa)、パスワード必須

      Oracle

      引数1 ドライバ名 oracle.jdbc.driver.OracleDriver
      引数2 データベースのURL jdbc:oracle:thin:@HOSTNAME:1521/DATABASENAME
      例)jdbc:oracle:thin:@localhost:1521:ORCL
      ユーザー名、パスワード必須

      SQLServer

      引数1 ドライバ名 com.microsoft.sqlserver.jdbc.SQLServerDriver
      引数2 データベースのURL jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
      例)jdbc:sqlserver://localhost;encrypt=true; databaseName=AdventureWorks;integratedSecurity=true;
      ユーザー名、パスワード必須

  4. SQLについて
  5. SQLの命令の種類

    SQL(構造化クエリ言語)はリレーショナルデータベース(RDBMS)を操作するための言 語です。
    データベースに対して命令を出して、必要なデータを格納したり、 格納したデータを取り出したりすることができ ます。
    1. データ操作言語(Data Manipulation Language)
    2. データベースに対してデータを追加・更新・削除などを行うためのSQL命令文の種類で、 SELECT(データの検索)、 INSERT(データの追加)、 UPDATE(データの更新)、DELETE(データの削除)などがあります。
    3. データ定義言語(Data Definition Language)
    4. データベースやテーブルなどを作成・削除したり、設定を変更したりするためのSQL命令文です。
      CREATE(テーブルの作成)、ALTER(テーブルの設定変更)、DROP(テーブルの削除)、TRUNCATE(テーブルデー タの削除)な どがあります。
      データベースのテーブル構成は、最初に定義した後で頻繁に変更することはありませんが、データベースを作成、管理するときに必要な言 語です。
    5. データ制御言語(Data Control Language)
    6. GRANT(権限付与) REVOKE(権限剥奪) COMMIT(トランザクションの確定)など、アクセス権の付与やをデータベースの状態制御のための命令文です。

    基本的なSQL文

    1. データベースの準備
      1. CREATE DATABASE [データベース名]
      2. ここで言う『データベース』はリレーショナルデータベース管理システムである「MySQL」ではなく、「MySQL」の 中に作るリレーショナルデータベース(RDB)を指します。
      3. USE [デーータベース名]
      4. データベース名を指定せずに接続した場合は、使用するデータベースを指定します。
      5. CREATE TABLE [テーブル名] (列名 データ型,・・・)
      6. データベースやテーブルなどを作成・削除したり、設定を変更したりするためのSQL命令文です。
    2. データの追加
      1. INSERT INTO [テーブル名] (列名1, 列名2, ...) VALUES (値1, 値2, ...)
      2. または INSERT INTO [テーブル名] VALUES (値1, 値2, ...)
      3. 値を入れる列名と値を指定します。 全ての列の値を指定する場合は、列名は省略可です。
    3. データの検索
      1. SELECT 列名1,列名2, ... FROM [テーブル名]
        検索して表示したい列名を指定します。
        「Select * from テーブル名」でテーブル全列のデータを取得できます。
      2. SELECT 列名1, 列名2, ... FROM [テーブル名] WHERE [条件]
      3. 条件を指定して取得するデータを抽出することができます。
    4. データの更新
      1. UPDATE [テーブル名]SET 列名1=値1 WHERE [条件]
      2. 値を更新する列名と値を指定します。
        条件を付けて更新するデータを限定することができます。
    5. データの削除
      1. DELETE FROM [テーブル名] WHERE [条件]
      2. 条件を指定しないとテーブル全体が削除されます。
      3. DROP [テーブル名またはデータベース名]
      4. テーブルやデータベース全体を削除します。
    6. テーブル構造の変更
      1. ALTER TABLE
      2. テーブルや列名の変更、列の追加や削除、データ型の変更などができます。
        データベース完成後に構造の変更を頻繁に行うことは、あまりありません。

  6. MySQLのデータ型
    1. MySQLのデータ型とMZ Platformのテーブルに設定したときのデータ型は以下の通りです。
      MySQLデータ型 MZ Platformテーブルでの列型
      TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT java.lang.Integer
      FLOAT java.lang.float
      DOUBLE java.lang.double
      DECIMAL 実数型
      BIT 文字列型
      DATE、DATETIME、TIMESTAMP、TIME、YEAR 日付型
      CHAR、VARCHAR 文字列型
      BINARY、VARBINARY 文字列型
      TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB 文字列型
      TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT 文字列型
      ENUM 文字列型
      SET 文字列型