메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
(새 문서: * Backus-Naur Form (BNF)는 컴퓨터 언어의 문법(구문)을 표현하는 표준화된 형식입니다. * Oracle 문서나 데이터베이스 관련 기술 문서를 읽을 때 종종 사용됩니다. * BNF는 특정 언어의 문법 규칙을 간결하고 구조화된 방식으로 정의하는 데 사용되며, 데이터베이스 SQL 구문에서도 이를 자주 볼 수 있습니다. == BNF의 기본 개념 == * BNF는 문법을 ”생성 규칙(production rules)“...)
 
 
21번째 줄: 21번째 줄:
** SQL is flexible
** SQL is flexible


2. Oracle SQL 구문에서의 BNF
== Oracle SQL 구문에서의 BNF ==


Oracle 문서에서 BNF는 SQL 명령의 구문을 설명하는 데 사용됩니다. Oracle BNF 표기법은 대체로 BNF에서 파생된 EBNF(Extended Backus-Naur Form) 형식을 따르며, 약간의 확장을 포함합니다.
Oracle 문서에서 BNF는 SQL 명령의 구문을 설명하는 데 사용됩니다. Oracle BNF 표기법은 대체로 BNF에서 파생된 EBNF(Extended Backus-Naur Form) 형식을 따르며, 약간의 확장을 포함합니다.
42번째 줄: 42번째 줄:
<constraint> ::= PRIMARY KEY | UNIQUE | ...
<constraint> ::= PRIMARY KEY | UNIQUE | ...


3. Oracle 문서의 BNF 표기법
== Oracle 문서의 BNF 표기법 ==


Oracle 문서에서는 BNF 또는 BNF 유사 표기법을 직관적으로 읽을 수 있도록 다음 기호를 사용합니다:
Oracle 문서에서는 BNF 또는 BNF 유사 표기법을 직관적으로 읽을 수 있도록 다음 기호를 사용합니다:
56번째 줄: 56번째 줄:
• 예: table, datatype → 사용자가 테이블 이름과 데이터 유형을 지정해야 함.
• 예: table, datatype → 사용자가 테이블 이름과 데이터 유형을 지정해야 함.


4. 예제 분석: CREATE INDEX
== 예제 분석: CREATE INDEX ==


다음은 Oracle 문서에서 BNF 형식으로 표현된 CREATE INDEX 구문입니다:
다음은 Oracle 문서에서 BNF 형식으로 표현된 CREATE INDEX 구문입니다:
81번째 줄: 81번째 줄:
3. TABLESPACE 및 STORAGE 절도 선택적으로 포함될 수 있음([ ... ]).
3. TABLESPACE 및 STORAGE 절도 선택적으로 포함될 수 있음([ ... ]).


5. BNF 표기법의 장점
== BNF 표기법의 장점 ==


• 표준화: 언어 구문을 정확히 기술하는 표준 방식 제공.
• 표준화: 언어 구문을 정확히 기술하는 표준 방식 제공.
87번째 줄: 87번째 줄:
• 확장성: 복잡한 명령도 계층적으로 나눠 관리할 수 있음.
• 확장성: 복잡한 명령도 계층적으로 나눠 관리할 수 있음.


6. BNF가 Oracle 문서에서 유용한 이유
== BNF가 Oracle 문서에서 유용한 이유 ==


• 복잡한 SQL 구문을 간결하게 표현.
• 복잡한 SQL 구문을 간결하게 표현.
93번째 줄: 93번째 줄:
• 반복 가능 항목(예: 열 정의 등)을 명확히 구분.
• 반복 가능 항목(예: 열 정의 등)을 명확히 구분.


7. BNF의 실용적인 활용
== BNF의 실용적인 활용 ==


Oracle SQL 구문을 읽을 때 BNF를 활용하려면:
Oracle SQL 구문을 읽을 때 BNF를 활용하려면:

2024년 11월 23일 (토) 11:20 기준 최신판

  • Backus-Naur Form (BNF)는 컴퓨터 언어의 문법(구문)을 표현하는 표준화된 형식입니다.
  • Oracle 문서나 데이터베이스 관련 기술 문서를 읽을 때 종종 사용됩니다.
  • BNF는 특정 언어의 문법 규칙을 간결하고 구조화된 방식으로 정의하는 데 사용되며, 데이터베이스 SQL 구문에서도 이를 자주 볼 수 있습니다.

BNF의 기본 개념

  • BNF는 문법을 ”생성 규칙(production rules)“ 으로 표현하며, 다음과 같은 구조를 가집니다:
    • 비터미널(non-terminal): 다른 규칙으로 대체될 수 있는 요소.
    • 터미널(terminal): 더 이상 대체되지 않는 실제 값(문자, 키워드 등).
    • 생성 규칙: ::= 기호를 사용해 문법의 정의를 나타냅니다.
  • 예:
<statement> ::= <subject> <predicate>
<subject> ::= "Oracle" | "SQL"
<predicate> ::= "is powerful" | "is flexible"
  • 이 규칙은 다음과 같은 문장을 생성할 수 있습니다:
    • Oracle is powerful
    • SQL is flexible

Oracle SQL 구문에서의 BNF

Oracle 문서에서 BNF는 SQL 명령의 구문을 설명하는 데 사용됩니다. Oracle BNF 표기법은 대체로 BNF에서 파생된 EBNF(Extended Backus-Naur Form) 형식을 따르며, 약간의 확장을 포함합니다.

예: CREATE TABLE 구문 (Oracle Syntax)

Oracle 문서에서 다음과 같은 구문 정의를 볼 수 있습니다:

CREATE TABLE [schema.]table

 (column datatype [DEFAULT expr] [constraint] [, ...])

이를 BNF로 표현하면:

<create_table> ::= CREATE TABLE [ <schema>. ]

( <column> <datatype> [ DEFAULT <expr> ] [ <constraint> ] [, ...] ) <schema> ::= identifier
 ::= identifier <column> ::= identifier <datatype> ::= VARCHAR2 | NUMBER | DATE | ... <constraint> ::= PRIMARY KEY | UNIQUE | ...

Oracle 문서의 BNF 표기법

Oracle 문서에서는 BNF 또는 BNF 유사 표기법을 직관적으로 읽을 수 있도록 다음 기호를 사용합니다: • 대괄호 [ ]: 선택 사항 (옵션)임을 나타냅니다. • 예: [schema.]table → schema는 선택적 요소입니다. • 중괄호 { }: 하나만 선택해야 함을 나타냅니다. • 예: {VARCHAR2 | NUMBER | DATE} → 세 가지 중 하나를 선택. • 수직선 |: 선택지 (or). • 예: {VARCHAR2 | NUMBER} → VARCHAR2 또는 NUMBER 중 하나. • 줄임표 ...: 항목이 반복 가능함을 나타냅니다. • 예: column1 [, column2, ...] → 여러 열을 정의할 수 있음. • 기울임꼴: 사용자가 정의해야 하는 값(식별자, 데이터타입 등). • 예: table, datatype → 사용자가 테이블 이름과 데이터 유형을 지정해야 함.

예제 분석: CREATE INDEX

다음은 Oracle 문서에서 BNF 형식으로 표현된 CREATE INDEX 구문입니다:

CREATE [ UNIQUE ] INDEX index_name ON table_name ( column1 [, column2, ...] )

 [ TABLESPACE tablespace_name ]
 [ STORAGE ( storage_clause ) ]

BNF로 변환:

<create_index> ::= CREATE [ UNIQUE ] INDEX <index_name>

                  ON <table_name> ( <column> [, <column>, ...] )
                  [ TABLESPACE <tablespace_name> ]
                  [ STORAGE ( <storage_clause> ) ]

<index_name> ::= identifier <table_name> ::= identifier <column> ::= identifier <tablespace_name> ::= identifier <storage_clause> ::= { STORAGE_SETTINGS }

• 설명: 1. UNIQUE는 선택 사항임([ UNIQUE ]). 2. 인덱스 이름, 테이블 이름, 열 이름 등은 사용자가 정의해야 함(기울임꼴). 3. TABLESPACE 및 STORAGE 절도 선택적으로 포함될 수 있음([ ... ]).

BNF 표기법의 장점

• 표준화: 언어 구문을 정확히 기술하는 표준 방식 제공. • 명확성: SQL 명령어를 구조적으로 이해할 수 있음. • 확장성: 복잡한 명령도 계층적으로 나눠 관리할 수 있음.

BNF가 Oracle 문서에서 유용한 이유

• 복잡한 SQL 구문을 간결하게 표현. • 선택 가능한 옵션과 필수 요소를 직관적으로 표시. • 반복 가능 항목(예: 열 정의 등)을 명확히 구분.

BNF의 실용적인 활용

Oracle SQL 구문을 읽을 때 BNF를 활용하려면: 1. 필수와 선택적 요소 구분: • [ ], { }, ... 등의 기호를 주의 깊게 확인. 2. 구성 요소 식별:

• 비터미널(
, <column> 등)과 터미널 키워드(CREATE, TABLE 등)를 구분. 3. 구문 확장 및 옵션 이해: • 선택적 요소([ ])를 포함하거나 생략할 경우를 고려해 구문 이해. 요약 Backus-Naur Form (BNF)은 언어의 구문을 간결하고 구조적으로 표현하는 방법입니다. Oracle 문서에서 SQL 구문을 이해할 때 BNF 방식은 선택적 요소, 반복 가능 항목, 필수 키워드를 명확히 구분할 수 있도록 도와줍니다. 이를 통해 복잡한 SQL 명령을 더 쉽게 이해하고 작성할 수 있습니다.