MySQL

dudgus1670·2022년 7월 31일
0

MySQL

  • 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템(RDBMS: Relational DBMS)
  • 오픈소스이며, 다중 사용자와 다중 스레드를 지원.
  • C, Cpp, JAVA, PHP 등 여러 프로그래밍 언어를 위한 다양한 API를 제공.
  • MySQL은 윈도우, 리눅스 등 다양한 운영체제에서 사용가능하며 Apache, PHP 와 함께 웹 개발에 자주 사용.
  • APM의 MySQL or (MariaDB) 등 Apache, PHP와 호환성이 좋기에 사용.
  • MySQL은 오픈 소스 라이선스를 따르지만, 상업적 이용시 상업라이센스를 필히 구매.

장점
1. 오픈소스 라이센스를 따르기 때문에 무료로 사용할 수 있음. 신뢰 가능.
2. 다양한 운영체제에서 사용할 수 있으며, 여러 가지의 프로그래밍 언어를 지원함.
3. 크기가 큰 데이터 집합도 아주 빠르고 효과적으로 처리할 수 있음.
4. 널리 알려진 표준 SQL 형식을 사용함.
5. MySQL 응용 프로그램을 사용자의 용도에 맞게 수정할 수 있음.
6. 많은 정보를 얻을 수 있는 대규모 사용자 커뮤니티
7. 지리적으로 분산된 시스템에 대한 복제 지원
8. innoDB 및 MyISAM을 포함한 여러 스토리지 엔진 지원
9. ACID속성을 사용해 트랜잭션 무결성 제공

DataBase

  • 데이터 저장소 또는 통합하여 관리되는 데이터의 집합체를 의미.
  • 중복 데이터 제거, 자료 구조화, 효율적 처리를 통해 관리.
  • 응용프로그램과 다른 별도의 미들웨어에 의해 관리.
  • 데이터베이스를 관리하는 이러한 미들웨어를 데이터베이스 관리시스템 (DBMS: Database Management System).

데이터베이스의 특징

  • 사용자의 쿼리(질의)에 대해 즉각적 처리와 응답이 이루어짐
  • 생성, 수정, 삭제를 통해 항상 최신 데이터 유지
  • 사용자가 원하는 데이터를 동시에 공유 가능
  • 사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조
  • 응용프로그램과 데이터베이스는 독립되어 있으므로, 데이터의 논리적 구조와 응용프로그램은 별개로 동작함.

관계형 데이터 베이스

  • 가장 많이 사용되고 있는 데이터베이스의 한 종류.
  • 테이블(table)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타냄. 이처럼 데이터의 종속성을 관계(relationship)로 표현하는 것
  • 구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체

관계형 데이터베이스의 특징
1. 데이터의 분류, 정렬, 탐색 속도가 빠름.
2. 오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장해 줌.
3. 기존에 작성된 스키마를 수정하기가 어려움.
4. 데이터베이스의 부하를 분석하는 것이 어려움.

관계형 데이터베이스 용어
1. 열(column)
각각의 열은 유일한 이름을 가지고 있으며, 자신만의 타입을 가지고 있음.
이러한 열은 필드(field) 또는 속성(attribute)이라고도 불림.

2. 행(row)
행은 관계된 데이터의 묶음을 의미.
한 테이블의 모든 행은 같은 수의 열을 가지고 있음.
이러한 행은 튜플(tuple) 또는 레코드(record)라고도 불림.

3. 값(value)
테이블은 각각의 행과 열에 대응하는 값을 가지고 있음.
이러한 값은 열의 타입에 맞는 값이어야 함.

4. 키(key)
테이블에서 행의 식별자로 이용되는 열을 키(key) 또는 기본 키(primary key)라고 함.
즉, 테이블에 저장된 레코드를 고유하게 식별하는 후보 키(candidate key) 중에서 데이터베이스 설계자가 지정한 속성을 의미함.

5. 관계(relationship)
테이블 간의 관계는 관계를 맺는 테이블의 수에 따라 다음과 같이 나눌 수 있음.

  • 일대일(one-to-one) 관계
  • 일대다(one-to-many) 관계
  • 다대다(many-to-many) 관계

관계형 데이터베이스에서는 이러한 관계를 나타내기 위해 외래 키(foreign key)라는 것을 사용함.
외래 키는 한 테이블의 키 중에서 다른 테이블의 행(row)을 식별할 수 있는 키를 의미함.


6. 스키마(schema)

  • 테이블을 디자인하기 위한 청사진이라고 할 수 있음.
  • 테이블의 각 열에 대한 항목과 타입뿐만 아니라 기본 키와 외래 키도 나타내야 함.
  • 개체-관계 다이어그램(entity-relationship diagram)이나 문자열로 표현할 수 있음.

SQL(Structured Query Language)

데이터베이스에서 데이터를 저장하거나 얻기 위해서 사용하는 표준화된 언어.
SQL 구문은 위의 목적에 맞게 세가지로 구분할 수 있음.

DML(Data Manipulation Language)

  • 데이터 조작 언어
  • 데이터를 조작 선택, 삽입, 수정, 삭제 하는 데사용되는 언어
  • DML 구문이 사용되는 대상은 테이블의 행
  • DML 사용하기 위해서는 꼭 그 이전에 테이블이 정의되어 있어야 함
  • SQL 문 중 SELECT, INSERT, UPDATE, DELETE 가 이 구문에 해당
  • 트랜잭션 Transaction 이 발생하는 SQL 도 이 DML에 속함
    • 테이블의 데이터를 변경 입력 수정 삭제 할 때 실제 테이블에 완전히 적용하지 않고 , 임시로 적용시키는 것
    • 취소 가능

DDL(Data Definition Language)

  • 데이터 정의 언어
  • 데이터베이스, 테이블, 뷰, 인덱스 등의 데이터
  • 데이터베이스 개체를 생성 삭제 변경하는 역할
  • DDL 은 트랜잭션 발생시키지 않음
  • ROLLBACK, COMMIT 사용 불가
  • DDL 문은 실행 즉시 MySQL 에 적용
  • CREATE/DROP/ALTER

DCL(Data Control Language)

  • 데이터 제어 언어
  • 사용자에게 어떤 권한을 부여하거나 빼앗을 때 주로 사용하는 구문
  • GRANT/REVOKE/DENY

MySQL SetUp

Mac에 MySQL 서버 설치
https://dev.mysql.com/downloads/mysql/
DMG Archive 버전으로 다운로드

Download 버튼을 클릭하면 로그인하라는 멘트가 나오는데, 하단에 No thanks, just start my download 를 클릭하여 다운로드

설치 후 dmg 파일을 더블클릭하여 여느 Mac 소프트웨어를 다운받는 것과 마찬가지로 동일하게 설치 진행


Mac의 시스템 환경설정에 들어가면 MySQL이 있는데, Active한 상태, 즉 활성화되어 있는 상태이면 됨.

MySQL 접속
Mac의 터미널로 MySQL에 접속

cd /usr/local/mysql/bin
./mysql -p

MySQL의 가장 베이스 디렉토리인 /usr/local/mysql 내에 bin 디렉토리에서 mysql 명령을 통해 실행.

저의 경우, 초기 비밀번호는 저의 Mac 비밀번호였고, 그 뒤 Enter password라고 뜨는 문구에서 MySQL 비밀번호를 입력.

참고
https://whitehairhan.tistory.com/24
http://tcpschool.com/mysql/mysql_intro_relationalDB
https://secure-key.tistory.com/56

profile
선명한 기억보다 흐릿한 메모

0개의 댓글