てきとーにのんびりだらだら

毎日更新目標!SEブログ!

オラクルマスターブロンズ1Z0-085資格勉強開始!@午前中は寝てました1章の勉強やっていくよー

おつおつー^^
午前中ターンエーガンダムの記事書いて少し動画見てたらそのまま眠くなり気づいたら午後1時!あわてて勉強始めて途中ちょっとふらっと外でたりちょっとゲームしたりとフラフラして結局21時になりましたが、本日はオラクルマスターブロンズ1Z0-085資格の黒本の2章まで終わらせられました!
全10章ということで1日1章残りで終わらせたとしたら来週のはじめには全部読破しているかなと思っています。ブログ書く時間とわからない単語調べる時間で少し進捗は遅いですが、少しずつでも進めていこうと思います!

oracleDB管理の概要

データベースの基礎知識

皆さんよく耳にすると思うデータベースとはどのようなものかわからない方もいると思うため、説明します。
よくデータベースについての説明やデータベースいざ作るよって時に用いられるのはamazon見たいなECサイト(在庫管理システム)やレストランの伝票です。
ここではレストランを例にしますが、メニューなるものがありお客さんはそれをもとに注文します。注文履歴を仮に残しておいたとすると、その履歴で何がよく売れているかなどが把握できます。その結果材料の仕入れ量を調整することが可能になります。つまり、データベースはある特定の目的に必要なデータを利用しやすくすることが可能です。
データベースは単体で構築すること自体可能ですが、実際データベースはデータベース管理システム(DBMS)という専用のソフトウェアを使用して構築や運用を行います。今回資格を取ろうとしているoracleDBもDBMSです。DBMSでは以下の要件を満たすことが可能になります。

  • 大量のデータを管理できる
  • データを複数人で共有し、同時に利用できる
  • データを高速に参照、変更できる
  • データが破損、また障害が発生しても復旧できる(可用性)
  • ユーザーごとにアクセスできるデータや実行できる操作が決まっているため、不正アクセスや操作を防止できる

DBMSにもリレーショナルデータベース(RDBMS)、階層型データベース、ネットワーク型データベースなど様々あります。
階層型データベースは階層ということもあり、下の層は上の層の持っているデータは知り得ませんし、上の層は知らなかった場合下の層に問い合わせができます。
また、ネットワーク型データベースはその名の通りデータ同士が結ばれています。階層型とは違い、お互いにデータを知ることはできますが情報問い合わせのルートが複数ルートあるため、複雑化します。
RDBMSは表形式で整理されたデータベースで現在主流のデータベースです。(oracleDBもRDBMSです)
RDBMSは列と行で構成される表(テーブル)に行(レコード)追加という方法でデータを格納しています。列(カラム)には、列名とどのような種類のデータを格納するか(これはデータ型といいます)必ず定義しないといけません。定義したデータ型と異なるデータは列に格納することはできません。

sqlの基礎知識

RDBMSへのデータの参照や変更などはSQLという言語を使用します。
ANSIやISOといった団体によりsqlは標準規格が定められているため、オラクルに限らず多くのRDBMSは異なるものであっても基本的に同じSQL構文を使用できます。いわばSQLはデータべースにおける共通言語となっているのです。SQLの分類や構文などはoracleDBブロンズの試験では一部しか取り上げられていないためまた違う機会で勉強します。

OracleDBの概要

olacleDBの利用としては個人でもoracleをインストールしクライアントアプリケーションを立ち上げれば利用できますが、複数人での使用の場合はOracle専用のコンピュータ(データべースサーバー)にoracleをインストールし、アプリケーションが動作する複数のコンピュータ(クライアントマシン)がネットワークを介して同時に利用できるシステム構成を一般的に使用しています。このシステム構成をクライアント/サーバーシステムといいます。クライアント側からSQLをデータベースサーバーに投げることにより、その実行結果をクライアント側に返します。
次に実際oracleを使用する際の流れについてざっと説明していきます。
先ほどもあったようにデータベースサーバーにてoracleソフトウェアのインストールから始まり、oracleデータベースを作成するのですがDBCAというツールで作成できます。パッケージをダウンロードしたらDBCAが起動するようになっています。oracleDBを作成したのち、アプリケーション用のユーザー作成を行います。ユーザー作成には事前に作成されているsysユーザーやsystemユーザーでログインする必要があります。アプリケーション用のユーザー作成をしなくてもDBは扱えますが、それらのユーザーは管理権限を持つためセキュリティ上のリスクにさらされてしまいます。ちなみにですが、それらのユーザーはユーザーへの権限付与も可能としています。

oracleソフトウェアのインストールとデータベースの作成

この章は基本的に資格のための勉強となるため長くはなりますが、記事として見ることは推奨できません。ご了承ください。

Oracleソフトウェアのインストール

私が受験しようとしている資格では、インストール手順についてOracleUniversalInstallerを使用し、Linux及びUNIX環境へのインストールが出題されるようなのですみませんがそれに則ります。
oracleソフトウェアインストールについて以下が全体像になります。

  1. 前提条件の確認
  2. OSへの設定
  3. Oracleソフトウェアのインストール
  4. OracleDBの作成

勉強のため一つずづ詳しく見ていきます。
1. 前提条件の確認
Oracleインストールの際、データベースサーバーは以下の前提となっているか確認します

  • サポートされているOSバージョンであること
  • 記憶域(ストレージ)の空き容量が十分にあること
  • 物理メモリーサイズが十分にあること
  • インストールに使用するOSユーザーおよびグループが存在すること

OSユーザーおよびグループとありますが、それぞれOSユーザーはOracleソフトウェア所有者(ユーザー名oracle)、グループはOracleインベントリグループ(ユーザー名oinstall)とOSDBAグループ(ユーザー名dba)とします。ここではOracleとしてのOSユーザーおよびグループであって、Linuxのものではありません。また、OSグループはほかにもさまざまなグループが存在します。
2. OSへの設定
作成したOSユーザーの環境変数としてoracleインスタンスの認識子やインストール先ディレクトリなどのoracle実行環境の情報を設定します。 以下Linux,UNIX環境で設定すべき環境変数です。

ORACLE_BASEにはoracle関連ファイルのディレクトリパスを設定することで、データベースファイルやログファイルなどほぼすべてのファイルが配置されます。
ORACLE_HOMEにはoracleソフトウェアを配置するディレクトリパスを設定する。ORACLE_BASEのサブディレクトリに指定します。1つのORACLE_HOMEに対して一つのソフトウェアしかインストールはできません(19cなら18cは入れられない)
ORACLE_SIDはインスタンスの認識子を設定するが、原則的にインスタンス識別子(SID)はデータベース名にあたります。
データベース名はデータベース作成時のDBCAで指定するものを入れます。
ORACLE_BASEの使用についてはOFA(OptionalFlexibleArchitecture)というガイドラインの推奨によるものです。
3. Oracleソフトウェアのインストール
oracleソフトウェアのインストールについてはOUI(OracleUniversalInstaller)を使って行います。GUIです。OUIはインストールだけでなく、アンインストールやインストールされているoracle製品、インストール前の前提条件チェックの機能もあります。
DB作成についてはDBCA(DataBaseConfigurationAssistant)というGUIを使って行います。作成だけでなく既にDB作成されているものを削除することも可能です。さらにDBCAの機能としてテンプレートの管理も可能となっています。テンプレートとはデータベース作成のひな型でありoracleソフトウェアに構成済みとなっています。XMLファイルであるため、ほかのデータベースサーバーにコピーして使用することも可能です。