こんばんは、なるです。
どなたか、バイクのカブを安く売ってるところ知りませんか?
9月に入って外がめちゃめちゃに気持ち良いので、あてもなくバイク走らせてみたいです。
カブかわいくて好きなんですよね~🏍
近いうちにデータベース(以後DB)周りの仕事をすることになったため、
SQLを復習しております。
DBMS(データベースマネジメントシステム)はOracleということなので、
過去に使っていたmysqlとの違いを交えつつDBの基本知識について整理したいと思います。
そもそもDBとは
データベースは一言で説明すると「様々なデータを決まった形で整理して集めたもの」です。
引用元:https://it-biz.online/it-skills/database/
ネットショッピングを例にあげると、情報を顧客情報や商品情報などをルールに従って整理し、それらがDBに保管されているイメージです。
DBにはデータの管理方法の違いでいくつかの種類が存在し、
OracleとmysqlはどちらもRDB(リレーショナルデータベース)に分類されます。
RDB(リレーショナルデータベース)とは?
リレーショナルデータベースは、エクセルのように表形式(テーブル)であらわされるデータベースで、テーブル間の関係(リレーション)を定義することでデータの結びつきや関連性をわかりやすく表します。
引用元:https://it-biz.online/it-skills/database/#toc5
先程の例になぞらえると、顧客情報や商品情報といった情報が表形式でDBに保管されており、
目的に応じたデータを抽出しやすい仕組みのDBといったところでしょうか。
他にも種類があり、それぞれ利点があります。
こちら の記事が分かりやすくまとめてくださってますので、興味がある方は見てみてください。
RDBを管理するためのツールをRDBMS(リレーショナルデータベースマネジメントシステム)といい、OracleやmysqlはこのRDBMSの種類となります。
が、実際のやり取りする時にこの単語が出てくることないんじゃないでしょうか?
まとめてDBと覚えてしまっても問題ない気がします。
例:「おたくのDBなに使ってますか?→Oracleです」これで通じると思います。
Oracleとmysqlの違い
調べてみたのですが、いやぁ、難しいですね笑
DBの選定や設計、移植をするときには把握した方がいいことが多々ありそうですが、
すでに稼働しているDBにSQLでアクセスする分には、基本的に同じ感覚で大丈夫と感じました。
調べて見つけた気を付けた方がいいポイントを箇条書きにします。
参考サイト
※以降専門用語増えると思います。こちらの記事が分かりやすくまとめて下さってます。
-
空の文字列の扱い
Oracleでは、文字列と定義されたフィールドが空の場合NULLを返す仕様のようです。
mysqlでは空の文字列はNULLではなく、''という文字列だったので注意が必要。 -
テーブル名の命名規則
mysqlではテーブル名の1文字目に数字を付けられるのですが、
Oracleでは命名規則に抵触するようです。 -
チェック制約の有無
Oracleにはチェック制約という機能が存在するようです。
カラムの入力規則を、テーブル作成時にユーザーが設定できるようです。
設定されていた場合、レコードの登録時にはじかれる場合があるので、落ち着いて対処しましょう。 -
関数の細かい違い
参考:組み込み関数の共通性
こちらを見ると、完全に同じように使える関数はある程度限られてくるみたいです。
こればかりは使いながら都度覚えるしかないですね。
今回調べたおかげで、Oracle使ってエラーが出ても心構えができてる状態で対応できそうです。
やることとしては「調べる→試す→エラー出る→調べる→解決する→始めに戻る」
いずれにしてもこの繰り返しなので今までと変わらないですね!
ひとまずこの記事はここまでにして、また気づきなどがあればまとめるとします。
実際に業務に入ってどんな違いが出てくるか、たのしみですね!
ではまた!
参考サイト
データベースとは?IT初心者向けにわかりやすく3分で解説【DB】
SQLの観点から「Oracle Database」「PostgreSQL」「MySQL」の特徴を整理しよう!
DB系用語まとめ