データベースの専門家になるための探求記
データベースの専門家を目指して、知識や経験の共有、データベース関連試験への対策等です。お役に立てれば。。
2025年9月27日土曜日
RDBMSが持つべき12のルール
2025年8月29日金曜日
クロニクル CentOSにMySQLを入れる
1. MySQL Yumリポジトリの追加
https://dev.mysql.com/downloads/repo/yum/
から、対応するOSのrpm名を取得。
mysql84-community-release-el9-2.noarch.rpm
でした。
以下のコマンドで追加
sudo dnf install -y https://dev.mysql.com/get/mysql84-community-release-el9-2.noarch.rpm
2. インストール
sudo dnf install -y mysql-community-server
3.サービスの起動と有効化
sudo systemctl start mysqld
sudo systemctl enable mysqld
4. rootの初期パスワードを探す
grep 'temporary password' /var/log/mysqld.log
5.セキュリティ設定
sudo mysql_secure_installation
を実行。パスワードを聞かれるので、「4.」で探したものを利用。
新しいパスワードをつける
あとは、対話に沿って進める。
6. 接続
mysql -u root -p
で、「5.」でつけたパスワードでログイン
2025年8月16日土曜日
オブジェクト指向におけるオブジェクト間の関係
・オブジェクト間の関係をリレーションと呼ぶ。
・リレーションには、次の種類が存在する。
1.is-a
・Aは、Bである、という関係
・人間は、動物である が例
・継承関係のこと
2.has-a
・Aは、Bを持っている、AはBから構成される、という関係
・車には、ハンドルがある が例
・集約(アグリげーション)、複合集約(コンポジション)となる
SQL vs NoSQL vs NewSQL - A comparative Study
公開されている
SQL vs NoSQL vs NewSQL - A comparative Study
のキモの部分を読んで勉強してみたいと思います。
概要
RDBMSでは、データは表、あるいは、リレーションという形で保存される。
しかし、非構造データが主役となるビックデータには、RDBMSでは不十分。
ビックデータに対して高速な処理や、スケーラビリティの確保が
難しい。
そこで、ビックデータのためのスケーラブルで非構造化データに
対応したプラットフォームとして、NoSQLと呼ばれるシステムが登場した。
NoSQLには、key-valueペア、ドキュメント、グラフ、ワイドカラムがあり、
いずれもスキーマを必要としない。
NoSQLには、ACIDプロパティを保証品という欠点があり、RDBMSとの
互換性に問題があった。そこで、NewSQLが登場した。
NewSQLは、RDBMSにNoSQLの拡張性を加えたもの。
NoSQL
Data Model in NoSQL
NoSQLのデータモデルには、key-orientedストレージ、
グラフモデルなどがある。
Key based NoSQL Data Model
keyを利用してデータの保管やアクセスを行う。
key based modelの最も単純な形式は、key-valueストア。
keyに対応した任意のデータを持つことができる。
データに関する情報は、データベースでは管理されない。
Amazon DynamoDBなどがある。
別のタイプのekyモデルとして、ドキュメントモデルがある。
keyは、ドキュメントと呼ばれる楮かされたデータに対応する。
ドキュメントは、JSONなどのフォーマットで保管される。
この例としては、MongoDBなどがある。
-- つづきます。--
2025年8月14日木曜日
クロニクル MacでMySQL
2025年8月10日日曜日
クロニクル MacでTiDB
tiup playgroundを利用してみたいと思います。
Mac OS 13.7.6です。
1.インストール
こちらのマニュアル通りで、動きました。
https://docs.pingcap.com/ja/tidb/stable/tiup-overview/
インストール後の指示で、Bashのプロファイル(.bash_profile)を再実行しました。
2.tiup playgrondの実行
コマンドラインで、
tiup playgrond
を実行。
ダウンロードされ、クラスタが作られるようです。
3.接続の確認
別のターミナルで、
tiup client
を実行。
プロンプトが上がってくるので、
my:root@127.0.0.1:4000=> show databases ;
Database
--------------------
INFORMATION_SCHEMA
METRICS_SCHEMA
PERFORMANCE_SCHEMA
mysql
sys
test
(6 rows)
my:root@127.0.0.1:4000=>
動いているのかと思います。
2025年8月9日土曜日
クロニクル CentOSにOracleクライアントを入れる
CentOS 9 です。Oracle11.2 clientをインストールします。
1. Oracleクライアントのダウンロード
https://www.oracle.com/jp/database/technologies/instant-client/linux-x86-64-downloads.html
から、接続するデータベースのバージョンにあったクライアントをダウンロードしました。
SQL*PLUS も加えて、次の2つを入手しました。
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
2.依存関係のあるライブラリのインストール
sudo dnf install -y libaio libnsl
3.Oracleクライアントのインストール
sudo rpm -ivh ./oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
sudo rpm -ivh ./oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
以下のディレクトリにインストールされているみたいです。
/usr/lib/oracle/11.2/client64
4. 環境変数の設定
〇ライブラリへのPATHの追加
LD_LIBRARY_PATH="/usr/lib/oracle/11.2/client64/lib"
〇日本語環境への設定
NLS_LANG=JAPANESE_JAPAN.UTF8
〇PATHの追加
/usr/lib/oracle/11.2/client64/bin
を追加する。
反映して、
sqlplus
を実行すると、sqlplus が起動する。
5.接続の設定
$HOMEに、次のようなtnsnames.oraファイルを準備する。
+----- tnsnames.ora
〇〇 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ××)(PORT = ××))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 〇〇)
)
)
+-----
環境変数 TNS_ADMIN に、tnsnames.oraファイルのあるディレクトリを指定する。
次のようなsqlplusのコマンドで接続してみる。
sqlplus ユーザ/パスワード@〇〇
接続できました。