For a Given set of Functional dependencies, the attribute closure of an attribute A will be a set S determined as below:

1. Add A to the set S.
2. Add all the attributes which are derived from A to the set S
3. Add all the attributes which are functionally determined by the attributes of set S, recursively.

Attribute closure is denoted by A+

Example:

Given a Relation R(A, B, C, D, E) {AB -> CD, D -> E, A -> C,B -> D}.

we can determine A+ as:

1. Add A to the set S = {A}.
2. get all the attribute which are derived from A
• A->C (From given Functional Dependencies)
• Add C to the set. Now S will contain {A,C}
3. No other attribute can be derived from A and C hence

A+= {A,C}.

we can determine B+ as:

1. Add B to the set S = {B}.
2. get all the attribute which are derived from B
• B->D (From given Functional Dependencies)
• Add D to the set. Now S will contain {B,D}
3. get all the attribute which are either derived by D or the combination of BD
• D->E
• Add E to the Set. Now S will contain {B,D,E}
4. No other attribute can be derived from B,D,E or with their combination hence

B+= {B,D,E}.

Similarly we can get closure of any attribute.
{"ft_lang_label":"__label__en","ft_lang_prob":0.9055693,"math_prob":0.9257433,"size":1136,"snap":"2019-51-2020-05","text_gpt3_token_len":304,"char_repetition_ratio":0.17491166,"word_repetition_ratio":0.20434782,"special_character_ratio":0.2878521,"punctuation_ratio":0.12741312,"nsfw_num_words":0,"has_unicode_error":false,"math_prob_llama3":0.99241596,"pos_list":[0],"im_url_duplicate_count":[null],"WARC_HEADER":"{\"WARC-Type\":\"response\",\"WARC-Date\":\"2019-12-14T14:52:14Z\",\"WARC-Record-ID\":\"<urn:uuid:b42abdb6-bf84-4dc2-8cdd-f39d9fe0d55d>\",\"Content-Length\":\"96217\",\"Content-Type\":\"application/http; msgtype=response\",\"WARC-Warcinfo-ID\":\"<urn:uuid:fd18e960-afb7-451c-bf93-8b8e67ab47c3>\",\"WARC-Concurrent-To\":\"<urn:uuid:47ecb1c6-b162-4a41-b3c9-bf71555995f8>\",\"WARC-IP-Address\":\"192.0.78.24\",\"WARC-Target-URI\":\"https://ashutoshtripathi.com/gate/dbms/normalization-normal-forms/how-to-find-attribute-closure-using-functional-dependency/\",\"WARC-Payload-Digest\":\"sha1:LL6M3R7ZNWF7AKH6SMLCDMSCS4EAFSUU\",\"WARC-Block-Digest\":\"sha1:HNXNY7OTUSRDKNKTSMSYQ6U3HMEYEPUW\",\"WARC-Identified-Payload-Type\":\"text/html\",\"warc_filename\":\"/cc_download/warc_2019/CC-MAIN-2019-51/CC-MAIN-2019-51_segments_1575541157498.50_warc_CC-MAIN-20191214122253-20191214150253-00192.warc.gz\"}"}